BEGIN...END (Transact-SQL)
Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do AzureAzure Synapse AnalyticsPDW (Analytics Platform System)Ponto de extremidade de SQL no Microsoft FabricWarehouse no Microsoft Fabric
Abrange uma série de instruções Transact-SQL para que um grupo de instruções Transact-SQL possa ser executado. BEGIN e END são palavras-chave da linguagem de controle de fluxo.
Convenções de sintaxe de Transact-SQL
Sintaxe
BEGIN
{ sql_statement | statement_block }
END
Observação
Para exibir a sintaxe do Transact-SQL para o SQL Server 2014 (12.x) e versões anteriores, confira a Documentação das versões anteriores.
Argumentos
{ sql_statement | statement_block }
É qualquer instrução ou agrupamento de instruções Transact-SQL válido, como definido com o uso de um bloco de instruções.
Comentários
Os blocos BEGIN...END podem ser aninhados.
Embora todas as instruções Transact-SQL sejam válidas em um bloco BEGIN...END, certas instruções Transact-SQL não devem ser agrupadas no mesmo lote ou bloco de instruções.
Exemplos
No exemplo a seguir, BEGIN
e END
definem uma série de instruções Transact-SQL que são executadas em conjunto. Se o bloco BEGIN...END
não tivesse sido incluído, ambas as instruções ROLLBACK TRANSACTION
seriam executadas e as mensagens PRINT
seriam retornadas.
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.
*/
Exemplos: Azure Synapse Analytics e PDW (Analytics Platform System)
No exemplo a seguir, BEGIN
e END
definem uma série de instruções do SQL que são executadas em conjunto. Se o bloco BEGIN...END
não for incluído, o exemplo a seguir ficará em um loop contínuo.
-- Uses AdventureWorks
DECLARE @Iteration Integer = 0;
WHILE @Iteration <10
BEGIN
SELECT FirstName, MiddleName
FROM dbo.DimCustomer WHERE LastName = 'Adams';
SET @Iteration += 1 ;
END;
Consulte Também
ALTER TRIGGER (Transact-SQL)
Linguagem de controle de fluxo (Transact-SQL)
CREATE TRIGGER (Transact-SQL)
END (BEGIN...END) (Transact-SQL)
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de