Поделиться через


BEGIN...END (Transact-SQL)

Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure конечной точке аналитики платформы Аналитики Azure Synapse Analytics (PDW) в Microsoft Fabric Хранилище в Microsoft Fabric

Заключает ряд инструкций Transact-SQL, чтобы группа инструкций Transact-SQL была выполнена в логический блок кода. BEGIN и END являются ключевыми словами языка управления потоком.

Соглашения о синтаксисе Transact-SQL

Синтаксис

BEGIN
    { sql_statement | statement_block }
END

Аргументы

{ sql_statement | statement_block }

Любая допустимая инструкция Transact-SQL или группирование инструкций, определяемая с помощью блока инструкций.

Замечания

BEGIN...END Блоки можно вложить.

Хотя все инструкции Transact-SQL допустимы в блоке BEGIN...END , некоторые инструкции Transact-SQL не должны группироваться в одном пакете или блоке инструкций.

Примеры

В следующем примере ключевые слова BEGIN и END определяют ряд инструкций Transact-SQL, которые будут выполняться вместе. BEGIN...END Если блок не включен, оба ROLLBACK TRANSACTION оператора будут выполняться, и оба PRINT сообщения будут возвращены.

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

Примеры: Azure Synapse Analytics и система платформы аналитики (PDW)

В следующем примере BEGIN и END определите ряд инструкций SQL, которые выполняются вместе. BEGIN...END Если блок не включен, следующий пример выполняется в непрерывном цикле.

-- Uses AdventureWorksDW

DECLARE @Iteration INT = 0;

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

    SET @Iteration += 1;
END;