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