BEGIN...END (Transact-SQL)

Engloba uma série de instruções Transact-SQL de modo que um grupo de instruções Transact-SQL pode ser executado. BEGIN e END são palavras-chave da linguagem de controle de fluxo.

Ícone de vínculo de tópicoConvenções de sintaxe 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 válido, conforme definição por meio de um bloco de instrução.

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ção. Para obter mais informações, consulte Lotes e as instruções individuais usadas.

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 AdventureWorks2008R2;
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 tranaction.
*/