BEGIN...END (Transact-SQL)
Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics Analytics Platform System (PDW) Ponto de extremidade de análise de SQL no Microsoft Fabric Warehouse no Microsoft Fabric Banco de Dados SQL no Microsoft Fabric
Contém uma série de instruções Transact-SQL para que um grupo de instruções Transact-SQL possa ser executado em um bloco lógico de código. BEGIN
e END
são palavras-chave de linguagem de controle de fluxo.
Convenções de sintaxe de Transact-SQL
Sintaxe
BEGIN
{ sql_statement | statement_block }
END
Argumentos
{ sql_statement | statement_block}
Qualquer instrução Transact-SQL válida ou agrupamento de instruções, conforme definido usando um bloco de instruções.
Comentários
BEGIN...END
blocos podem ser aninhados.
Embora todas as instruções Transact-SQL sejam válidas em um BEGIN...END
bloco, determinadas 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 BEGIN...END
bloco não for incluído, ambas as ROLLBACK TRANSACTION
instruções serão executadas e ambas as PRINT
mensagens serão 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
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 BEGIN...END
bloco não estiver incluído, o exemplo a seguir será executado em um loop contínuo.
-- Uses AdventureWorksDW
DECLARE @Iteration INT = 0;
WHILE @Iteration < 10
BEGIN
SELECT FirstName,
MiddleName
FROM dbo.DimCustomer
WHERE LastName = 'Adams';
SET @Iteration += 1;
END;