a)
A SQL statement is a single SQL command (for example, SELECT * FROM table1 or SET NOCOUNT ON). A batch on the other hand, is a number of SQL statements sent to the server for execution as a whole unit. The statements in the batch are compiled into a single execution plan. Batches are separated by the GO command
So the only difference between SQL statement and a Batch is that each SQL statement is sent to server as a separate unit and thus is compiled separately from other SQL statements, while SQL statements in a Batch are compiled together?
b) I assume one of major differences between a stored procedure and a Batch is that stored procedures are precompiled while Batches aren’t?
thanx
A batch of SQL statements is a group of two or more SQL statements or a single SQL statement that has the same effect as a group of two or more SQL statements. In some implementations, the entire batch statement is executed before any results are available.
A batch is just that, a batch of commands that need to be executed. A transaction is a set of commands that are guaranteed to succeed or fail totally (i.e it won't complete half the commands and then fail on the rest, if one fails they all fail).
A SQL batch is, in its essence, a collection of various SQL statements put together to be executed without a guarantee that it will either succeed or fail. SQL batches ensures creation of a single query execution plan. Variables created within a batch cannot be used outside of the batch.
a. Only if each SQL statement is run individually (say in SSMS or on the client).
Two statements = "a batch" always even if no GO is involved. GO merely tells a tools like SSMS to break up the submits to the engine.
b. not quite true. A stored proc is pre-parsed but not compiled into an execution plan until invoked and not in the plan cache already. A batch is parsed and compiled in one go and may generate a reusable plan.
Edit, after comment:
So
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With