BEGIN...END (Transact-SQL)
Применимо к: SQL Server Azure SQL Database
Управляемый экземпляр SQL Azure
Azure Synapse Analytics Analytics
Platform System (PDW)
Конечная точка SQL в Microsoft FabricWarehouse в Microsoft Fabric
Включает в себя последовательность инструкций Transact-SQL, позволяя выполнять группу инструкций Transact-SQL. Ключевые слова BEGIN и END относятся к языку потока управления.
Соглашения о синтаксисе Transact-SQL
Синтаксис
BEGIN
{ sql_statement | statement_block }
END
Примечание
Ссылки на описание синтаксиса Transact-SQL для SQL Server 2014 и более ранних версий, см. в статье Документация по предыдущим версиям.
Аргументы
{ 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
/*
Rolled back the transaction.
*/
Примеры: Azure Synapse Analytics и Система платформы аналитики (PDW)
В приведенном ниже примере ключевые слова BEGIN
и END
определяют ряд инструкций языка SQL, которые выполняются вместе. Если не включить блок BEGIN...END
, в приведенном ниже примере образуется непрерывный цикл.
-- Uses AdventureWorks
DECLARE @Iteration Integer = 0;
WHILE @Iteration <10
BEGIN
SELECT FirstName, MiddleName
FROM dbo.DimCustomer WHERE LastName = 'Adams';
SET @Iteration += 1 ;
END;
См. также
ALTER TRIGGER (Transact-SQL)
Язык управления потоком (Transact-SQL)
CREATE TRIGGER (Transact-SQL)
Операторы END (BEGIN...END) (Transact-SQL)