Sdílet prostřednictvím


ZAČÍT... KONEC (Transact-SQL)

Platí pro:SQL ServerAzure SQL DatabaseSpravovaná instance Azure SQLAzure Synapse AnalyticsAnalytics Platform System (PDW)Koncový bod analýzy SQL v Microsoft FabricSklad v Microsoft FabricDatabáze SQL v Microsoft Fabric

Uzavře řadu příkazů Transact-SQL tak, aby bylo možné spustit skupinu příkazů Transact-SQL v logickém bloku kódu. BEGIN a END jsou klíčová slova jazyka control-of-flow.

Transact-SQL konvence syntaxe

Syntax

BEGIN
    { sql_statement | statement_block }
END

Arguments

{ sql_statement | statement_block }

Libovolný platný příkaz Transact-SQL nebo seskupení příkazů definovaný pomocí bloku příkazu.

Remarks

BEGIN...END bloky lze vnořit.

I když jsou všechny příkazy Transact-SQL platné v BEGIN...END rámci bloku, určité příkazy Transact-SQL by neměly být seskupené do stejné dávky nebo bloku příkazu.

Examples

V následujícím příkladu BEGIN definujte END řadu příkazů Transact-SQL, které se spouštějí společně. BEGIN...END Pokud blok nezahrnete, spustí se oba ROLLBACK TRANSACTION příkazy a vrátí se obě PRINT zprávy.

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

Příklady: Azure Synapse Analytics a Analytický platformový systém (PDW)

V následujícím příkladu a BEGIN definujte řadu příkazů SQL, END které se spouštějí společně. BEGIN...END Pokud blok není zahrnutý, spustí se následující příklad ve smyčce continuous.

-- Uses AdventureWorksDW

DECLARE @Iteration INT = 0;

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

    SET @Iteration += 1;
END;