Encloses a series of Transact-SQL statements so that a group of Transact-SQL statements can be executed. BEGIN and END are control-of-flow language keywords.
BEGIN...END blocks can be nested.
Although all Transact-SQL statements are valid within a BEGIN...END block, certain Transact-SQL statements should not be grouped together within the same batch, or statement block. For more information, see Batches and the individual statements used.
In the followoing example,
END define a series of Transact-SQL statements that execute together. If the
BEGIN...END block were not included, both
ROLLBACK TRANSACTION statements would execute and both
USE AdventureWorks; GO BEGIN TRANSACTION; GO IF @@TRANCOUNT = 0 BEGIN SELECT * from Person.Contact WHERE LastName = 'ADAMS'; ROLLBACK TRANSACTION PRINT N'Rolling back the transaction two times would cause an error.' END ROLLBACK TRANSACTION PRINT N'Rolled back the transaction.' GO /* Rolled back the tranaction. */