Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
S’applique à :SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Point de terminaison d’analytique SQL dans Microsoft Fabric
Entrepôt dans Microsoft Fabric
Base de données SQL dans Microsoft Fabric
Place une série d’instructions Transact-SQL afin qu’un groupe d’instructions Transact-SQL puisse être exécuté dans un bloc logique de code.
BEGIN et END sont des mots clés de langage de contrôle de flux.
Conventions de la syntaxe Transact-SQL
Syntax
BEGIN
{ sql_statement | statement_block }
END
Arguments
{ sql_statement | statement_block}
Toute instruction Transact-SQL valide ou regroupement d’instructions tel que défini à l’aide d’un bloc d’instructions.
Remarks
BEGIN...END les blocs peuvent être imbriqués.
Bien que toutes les instructions Transact-SQL soient valides dans un BEGIN...END bloc, certaines instructions Transact-SQL ne doivent pas être regroupées dans le même lot ou dans le même bloc d’instructions.
Examples
Dans l'exemple suivant, BEGIN et END délimitent une série d'instructions Transact-SQL qui sont exécutées ensemble. Si le BEGIN...END bloc n’est pas inclus, les deux ROLLBACK TRANSACTION instructions s’exécutent et les deux PRINT messages sont retourné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
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 BEGIN...END bloc n’est pas inclus, l’exemple suivant s’exécute dans une boucle continue.
-- Uses AdventureWorksDW
DECLARE @Iteration INT = 0;
WHILE @Iteration < 10
BEGIN
SELECT FirstName,
MiddleName
FROM dbo.DimCustomer
WHERE LastName = 'Adams';
SET @Iteration += 1;
END;