Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к:SQL Server
База данных
SQL AzureУправляемый экземпляр
SQL AzureAzure Synapse Analytics
Система платформы аналитики (PDW)
Конечная точка аналитики SQL в Microsoft Fabric
Хранилище в Microsoft Fabric
База данных SQL в предварительной версии Microsoft Fabric
Заключает ряд инструкций Transact-SQL, чтобы группа инструкций Transact-SQL была выполнена в логический блок кода.
BEGIN
и END
являются ключевыми словами языка управления потоком.
Соглашения о синтаксисе Transact-SQL
Syntax
BEGIN
{ sql_statement | statement_block }
END
Arguments
{ sql_statement | statement_block }
Любая допустимая инструкция Transact-SQL или группирование инструкций, определяемая с помощью блока инструкций.
Remarks
BEGIN...END
Блоки можно вложить.
Хотя все инструкции Transact-SQL допустимы в блоке BEGIN...END
, некоторые инструкции Transact-SQL не должны группироваться в одном пакете или блоке инструкций.
Examples
В следующем примере ключевые слова 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;