BEGIN...END (Transact-SQL)

含括一系列的 Transact-SQL 陳述式,以便執行一組 Transact-SQL 陳述式。BEGIN 和 END 是流程控制語言關鍵字。

主題連結圖示Transact-SQL 語法慣例

語法

BEGIN
     { 
        sql_statement | statement_block 
     } 
END

引數

  • { sql_statement| statement_block }
    這是藉由使用陳述式區塊加以定義的任何有效 Transact-SQL 陳述式或陳述式群組。

備註

BEGIN...END 區塊可以有巢狀結構。

雖然 BEGIN...END 區塊中所有的 Transact-SQL 陳述式都是有效的陳述式,但某些 Transact-SQL 陳述式不應在同一批次或陳述式區塊中分成一組。如需詳細資訊,請參閱<批次>以及所用的個別陳述式。

範例

在下列範例中,BEGIN 和 END 會定義一系列同時執行的 Transact-SQL 陳述式。如果沒有 BEGIN...END 區塊,這兩個 ROLLBACK TRANSACTION 陳述式都要執行,而且都會傳回這兩個 PRINT 訊息。

USE AdventureWorks2008R2;
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 tranaction.
*/