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;