Freigeben über


BEGIN...END (Transact-SQL)

Schließt eine Reihe von Transact-SQL-Anweisungen ein, sodass eine Gruppe von Transact-SQL-Anweisungen ausgeführt werden kann. Die Schlüsselwörter BEGIN und END gehören in die Gruppe der Sprachkonstrukte zur Ablaufsteuerung.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

BEGIN
     { 
        sql_statement | statement_block 
     } 
END

Argumente

  • { sql_statement| statement_block }
    Eine beliebige gültige Transact-SQL-Anweisung oder -Anweisungsgruppierung, die mithilfe eines Anweisungsblockes definiert ist.

Hinweise

BEGIN...END-Blöcke können geschachtelt werden.

Obwohl sämtliche Transact-SQL-Anweisungen in einem BEGIN...END-Block gültig sind, sollten bestimmte Transact-SQL-Anweisungen nicht in demselben Batch oder Anweisungsblock gruppiert werden. Weitere Informationen finden Sie unter Batches und den jeweils verwendeten Anweisungen.

Beispiele

Im folgenden Beispiel wird durch BEGIN und END eine Reihe von Transact-SQL-Anweisungen definiert, die gemeinsam ausgeführt werden.Wäre der BEGIN...END-Block nicht vorhanden, würden beide ROLLBACK TRANSACTION-Anweisungen ausgeführt, und beide PRINT-Meldungen würden zurückgegeben.

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.
*/