BEGIN...END (Transact-SQL)
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) SQL-Analyseendpunkt in Microsoft Fabric Warehouse in Microsoft Fabric SQL-Datenbank in Microsoft Fabric
Schließt eine Reihe von Transact-SQL-Anweisungen ein, sodass eine Gruppe von Transact-SQL-Anweisungen in einem logischen Codeblock ausgeführt werden kann. BEGIN
und END
sind Schlüsselwörter zur Steuerung der Flusssprache.
Transact-SQL-Syntaxkonventionen
Syntax
BEGIN
{ sql_statement | statement_block }
END
Argumente
{ sql_statement | statement_block}
Jede gültige Transact-SQL-Anweisung oder -Anweisung, die mithilfe eines Anweisungsblocks definiert ist.
Hinweise
BEGIN...END
Blöcke können geschachtelt werden.
Obwohl alle Transact-SQL-Anweisungen innerhalb eines BEGIN...END
Blocks gültig sind, sollten bestimmte Transact-SQL-Anweisungen nicht innerhalb desselben Batch- oder Anweisungsblocks gruppiert werden.
Beispiele
Im folgenden Beispiel wird durch BEGIN
und END
eine Reihe von Transact-SQL-Anweisungen definiert, die gemeinsam ausgeführt werden. Wenn der BEGIN...END
Block nicht enthalten ist, werden beide ROLLBACK TRANSACTION
Anweisungen ausgeführt, und beide PRINT
Nachrichten werden 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
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 enthalten ist, wird das folgende Beispiel in einer fortlaufenden Schleife ausgeführt.
-- Uses AdventureWorksDW
DECLARE @Iteration INT = 0;
WHILE @Iteration < 10
BEGIN
SELECT FirstName,
MiddleName
FROM dbo.DimCustomer
WHERE LastName = 'Adams';
SET @Iteration += 1;
END;