BEGIN...END (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Analytics-Endpunkt in Microsoft FabricWarehouse in Microsoft Fabric

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.

Transact-SQL-Syntaxkonventionen

Syntax

BEGIN  
    { sql_statement | statement_block }   
END  

Hinweis

Informationen zum Anzeigen der Transact-SQL-Syntax für SQL Server 2014 (12.x) und früher finden Sie unter Dokumentation zu früheren Versionen.

Argumente

{ sql_statement | statement_block }
Eine beliebige gültige Transact-SQL-Anweisung oder -Anweisungsgruppierung, die anhand eines Anweisungsblocks definiert wurde.

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.

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 AdventureWorks2022;
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 transaction.  
*/  

Beispiele: Azure Synapse Analytics und Analytics-Plattformsystem (PDW)

Im folgenden Beispiel wird durch BEGIN und END eine Reihe von SQL-Anweisungen definiert, die gemeinsam ausgeführt werden. Wenn der BEGIN...END-Block nicht vorhanden wäre, würde das folgende Beispiel in einer Endlosschleife ausgeführt werden.

-- Uses AdventureWorks  

DECLARE @Iteration Integer = 0;
WHILE @Iteration <10  
BEGIN  
    SELECT FirstName, MiddleName   
    FROM dbo.DimCustomer WHERE LastName = 'Adams';
    SET @Iteration += 1  ;
END;

Siehe auch

ALTER TRIGGER (Transact-SQL)
Ablaufsteuerungssprache (Transact-SQL)
CREATE TRIGGER (Transact-SQL)
END (BEGIN...END) (Transact-SQL)