BEGIN...END (Transact-SQL)
Si applica a: SQL Server database SQL di Azure Istanza gestita di SQL di Azure endpoint di analisi SQL di Azure Synapse Analytics Platform System (PDW) in Microsoft Fabric Warehouse nel database SQL di Microsoft Fabric in Microsoft Fabric
Racchiude una serie di istruzioni Transact-SQL in modo che un gruppo di istruzioni Transact-SQL possa essere eseguito in un blocco logico di codice. BEGIN
e END
sono parole chiave del linguaggio di controllo del flusso.
Convenzioni relative alla sintassi Transact-SQL
Sintassi
BEGIN
{ sql_statement | statement_block }
END
Argomenti
{ sql_statement | statement_block }
Qualsiasi istruzione Transact-SQL valida o raggruppamento di istruzioni come definito tramite un blocco di istruzioni.
Osservazioni:
BEGIN...END
i blocchi possono essere annidati.
Anche se tutte le istruzioni Transact-SQL sono valide all'interno di un BEGIN...END
blocco, alcune istruzioni Transact-SQL non devono essere raggruppate all'interno dello stesso batch o blocco di istruzioni.
Esempi
Nell'esempio seguente BEGIN
ed END
definiscono una serie di istruzioni Transact-SQL eseguite insieme. Se il BEGIN...END
blocco non è incluso, entrambe ROLLBACK TRANSACTION
le istruzioni verranno eseguite e verranno restituiti entrambi i PRINT
messaggi.
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
Esempi: Azure Synapse Analytics e Piattaforma di strumenti analitici (PDW)
Nell'esempio seguente BEGIN
ed END
definiscono una serie di istruzioni SQL eseguite insieme. Se il BEGIN...END
blocco non è incluso, l'esempio seguente viene eseguito in un ciclo continuo.
-- Uses AdventureWorksDW
DECLARE @Iteration INT = 0;
WHILE @Iteration < 10
BEGIN
SELECT FirstName,
MiddleName
FROM dbo.DimCustomer
WHERE LastName = 'Adams';
SET @Iteration += 1;
END;