Delen via


BEGIN...END (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Analytics-eindpunt in Microsoft FabricMagazijn in Microsoft FabricSQL-database in Microsoft Fabric Preview

Plaatst een reeks Transact-SQL instructies, zodat een groep Transact-SQL instructies kan worden uitgevoerd in een logisch codeblok. BEGIN en END zijn trefwoorden voor de controle van de stroomtaal.

Transact-SQL syntaxis-conventies

Syntax

BEGIN
    { sql_statement | statement_block }
END

Arguments

{ sql_statement | statement_block }

Elke geldige Transact-SQL instructie of instructiegroepering zoals gedefinieerd met behulp van een instructieblok.

Remarks

BEGIN...END blokken kunnen worden genest.

Hoewel alle Transact-SQL instructies geldig zijn binnen een BEGIN...END blok, mogen bepaalde Transact-SQL instructies niet in dezelfde batch of instructieblok worden gegroepeerd.

Examples

In het volgende voorbeeld BEGINEND definieert u een reeks Transact-SQL instructies die samen worden uitgevoerd. Als het BEGIN...END blok niet is opgenomen, worden beide ROLLBACK TRANSACTION instructies uitgevoerd en worden beide PRINT berichten geretourneerd.

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

Voorbeelden: Azure Synapse Analytics and Analytics Platform System (PDW)

In het volgende voorbeeld BEGIN definieert END u een reeks SQL-instructies die samen worden uitgevoerd. Als het BEGIN...END blok niet is opgenomen, wordt het volgende voorbeeld uitgevoerd in een doorlopende lus.

-- Uses AdventureWorksDW

DECLARE @Iteration INT = 0;

WHILE @Iteration < 10
BEGIN
    SELECT FirstName,
        MiddleName
    FROM dbo.DimCustomer
    WHERE LastName = 'Adams';

    SET @Iteration += 1;
END;