BEGIN...END (Transact-SQL)BEGIN...END (Transact-SQL)

APLICA-SE A: simSQL Server (a partir do 2008) simBanco de Dados SQL do Azure simSQL Data Warehouse do Azure simParallel Data Warehouse APPLIES TO: yesSQL Server (starting with 2008) yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

Abrange uma série de instruções Transact-SQLTransact-SQL para que um grupo de instruções Transact-SQLTransact-SQL possa ser executado.Encloses a series of Transact-SQLTransact-SQL statements so that a group of Transact-SQLTransact-SQL statements can be executed. BEGIN e END são palavras-chave da linguagem de controle de fluxo.BEGIN and END are control-of-flow language keywords.

Ícone de link do tópico Convenções de sintaxe de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxeSyntax

BEGIN  
    { sql_statement | statement_block }   
END  

ArgumentosArguments

{ sql_statement | statement_block }{ sql_statement | statement_block }
É qualquer instrução ou agrupamento de instruções Transact-SQLTransact-SQL válido, como definido com o uso de um bloco de instrução.Is any valid Transact-SQLTransact-SQL statement or statement grouping as defined by using a statement block.

RemarksRemarks

Os blocos BEGIN...END podem ser aninhados.BEGIN...END blocks can be nested.

Embora todas as instruções Transact-SQLTransact-SQL sejam válidas em um bloco BEGIN...END, certas instruções Transact-SQLTransact-SQL não devem ser agrupadas no mesmo lote ou bloco de instrução.Although all Transact-SQLTransact-SQL statements are valid within a BEGIN...END block, certain Transact-SQLTransact-SQL statements should not be grouped together within the same batch, or statement block.

ExemplosExamples

No exemplo a seguir, BEGIN e END definem uma série de instruções Transact-SQLTransact-SQL que são executadas em conjunto.In the following example, BEGIN and END define a series of Transact-SQLTransact-SQL statements that execute together. 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.If the BEGIN...END block were not included, both ROLLBACK TRANSACTION statements would execute and both PRINT messages would be returned.

USE AdventureWorks2012;  
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 SQL Data WarehouseAzure SQL Data Warehouse e Parallel Data WarehouseParallel Data WarehouseExamples: Azure SQL Data WarehouseAzure SQL Data Warehouse and Parallel Data WarehouseParallel Data Warehouse

No exemplo a seguir, BEGIN e END definem uma série de instruções do SQLSQL que são executadas em conjunto.In the following example, BEGIN and END define a series of SQLSQL statements that run together. Se o bloco BEGIN...END não for incluído, o exemplo a seguir ficará em um loop contínuo.If the BEGIN...END block are not included, the following example will be in a continuous loop.

-- 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émSee Also

ALTER TRIGGER (Transact-SQL) ALTER TRIGGER (Transact-SQL)
Linguagem de controle de fluxo (Transact-SQL) Control-of-Flow Language (Transact-SQL)
CREATE TRIGGER (Transact-SQL) CREATE TRIGGER (Transact-SQL)
END (BEGIN...END) (Transact-SQL)END (BEGIN...END) (Transact-SQL)