BEGIN...END (Transact-SQL)
S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) SQL analytics endpoint in Microsoft Fabric Warehouse in 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
Syntaxe
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.
Notes
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.
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 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;