BEGIN...END (Transact-SQL)
Применимо к:SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure Управляемый экземпляр SQL Azure Конечная точка аналитики аналитики Synapse Analytics Analytics (PDW)SQL Analyticsв Microsoft FabricХранилище в Microsoft Fabric
Включает в себя последовательность инструкций Transact-SQL, позволяя выполнять группу инструкций Transact-SQL. Ключевые слова BEGIN и END относятся к языку потока управления.
Соглашения о синтаксисе Transact-SQL
Синтаксис
BEGIN
{ sql_statement | statement_block }
END
Примечание.
Сведения о синтаксисе Transact-SQL для SQL Server 2014 (12.x) и более ранних версиях см . в документации по предыдущим версиям.
Аргументы
{ 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)
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по