BEGIN...END (Transact-SQL)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Point de terminaison analytique SQL dans Microsoft FabricEntrepôt dans Microsoft Fabric

Délimite une série d'instructions Transact-SQL pour permettre l'exécution groupée d'instructions Transact-SQL. BEGIN et END sont des mots clés du langage de contrôle de flux.

Conventions de la syntaxe Transact-SQL

Syntaxe

BEGIN  
    { sql_statement | statement_block }   
END  

Remarque

Pour afficher la syntaxe Transact-SQL pour SQL Server 2014 (12.x) et versions antérieures, consultez la Documentation sur les versions antérieures.

Arguments

{ sql_statement | statement_block }
Représente toute instruction ou tout groupe d'instructions Transact-SQL valide tel que défini dans un bloc d'instructions.

Remarques

Les blocs BEGIN...END peuvent être imbriqués.

Bien que toutes les instructions Transact-SQL soient valides à l’intérieur d’un bloc BEGIN…END, certaines instructions Transact-SQL ne doivent pas être regroupées dans un même lot, ou un bloc d’instructions.

Exemples

Dans l'exemple suivant, BEGIN et END délimitent une série d'instructions Transact-SQL qui sont exécutées ensemble. Si le bloc BEGIN...END ne figurait pas dans l'exemple, les deux instructions ROLLBACK TRANSACTION seraient exécutées et les deux messages PRINT seraient renvoyés.

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.  
*/  

Exemples : Azure Synapse Analytics et Analytics Platform System (PDW)

Dans l’exemple suivant, BEGIN et END définissent une série d’instructions SQL qui s’exécutent ensemble. Si le bloc BEGIN...END n’est pas inclus, l’exemple suivant est dans une boucle continue.

-- Uses AdventureWorks  

DECLARE @Iteration Integer = 0;
WHILE @Iteration <10  
BEGIN  
    SELECT FirstName, MiddleName   
    FROM dbo.DimCustomer WHERE LastName = 'Adams';
    SET @Iteration += 1  ;
END;

Voir aussi

ALTER TRIGGER (Transact-SQL)
Langage de contrôle de flux (Transact-SQL)
CREATE TRIGGER (Transact-SQL)
END (BEGIN...END) (Transact-SQL)