Поделиться через


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 могут быть вложенными.

Хотя все инструкции языка Transact-SQL допустимы в пределах блока BEGIN...END, некоторые инструкции языка 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.
*/