TechNet
Export (0) Print
Expand All

BEGIN...END (Transact-SQL)

 

THIS TOPIC APPLIES TO: yesSQL Server (starting with 2008)yesAzure SQL DatabaseyesAzure SQL Data Warehouse yesParallel Data Warehouse

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.

Topic link icon Transact-SQL Syntax Conventions


BEGIN
     { 
    sql_statement | statement_block 
     } 
END

-- Azure SQL Data Warehouse and Parallel Data Warehouse
BEGIN
     { 
    sql_statement | statement_block 
     } 
END

{ sql_statement| statement_block }
Is any valid Transact-SQL statement or statement grouping as defined by using a statement block.

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.

In the following example, BEGIN and 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 PRINT messages would be returned.

USE AdventureWorks2012;
GO
BEGIN TRANSACTION;
GO
IF @@TRANCOUNT = 0
BEGIN
    SELECT FirstName, MiddleName 
    FROM Person.Person 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 transaction.
*/

In the following example, BEGIN and END define a series of SQL statements that run together. If the BEGIN...END block are not included, the following example will be in a continuous loop.

-- Uses AdventureWorks

DECLARE @Iteration Integer = 0
WHILE @Iteration <10
BEGIN
    SELECT FirstName, MiddleName 
    FROM dbo.DimCustomer WHERE LastName = 'Adams';
SET @Iteration += 1
END;


ALTER TRIGGER (Transact-SQL)
Control-of-Flow Language (Transact-SQL)
CREATE TRIGGER (Transact-SQL)
END (BEGIN...END) (Transact-SQL)

Community Additions

ADD
Show:
© 2016 Microsoft