I have been trying to find info on the web about the differences between these statements, and it seems to me they are identical but I can’t find confirmation of that or any kind of comparison between the two.
What is the difference between doing this:
BEGIN
-- Some update, insert, set statements
END
and doing this
BEGIN TRANS
-- Some update, insert, set statements
COMMIT TRANS
?
Note that there is only the need to rollback in the case of some exception or timeout or other general failure, there would not be a conditional reason to rollback.
BEGIN and END deal with code blocks. They are similar to the curly braces you see in many languages:
In SQL, this is:
BEGIN TRAN,COMMIT, andROLLBACKbegin and end transactions. They do not specify a new block of code; they only mark the transaction boundaries.Note that you can write a
BEGIN TRANandCOMMITin separate blocks of code. For example, if you want code to be part of a transaction, but you don’t want to start a new one if the code is already in a transaction, you can do something like this: