BEGIN ... END 為 T-SQL 控制流程關鍵字,用於將多條陳述式包裝成單一邏輯區塊,使其可作為單一單元執行(如搭配 IF...ELSE、WHILE 等流程控制)。
BEGIN
{ sql_statement | statement_block }
END
sql_statement:任何有效的 Transact-SQL 陳述式statement_block:以 BEGIN...END 定義的巢狀陳述式群組CREATE PROCEDURE、CREATE VIEW、SET SHOWPLAN_TEXT 等)不得與其他陳述式同批次執行USE pubs;
GO
CREATE TRIGGER deltitle ON titles FOR DELETE AS
IF (SELECT COUNT(*) FROM deleted, sales WHERE sales.title_id = deleted.title_id) > 0
BEGIN
ROLLBACK TRANSACTION;
PRINT 'You can''t delete a title with sales.';
END
若無 BEGIN...END,IF 僅作用於緊隨其后的單一陳述式(ROLLBACK),PRINT 將無條件執行,導致邏輯錯誤。