BEGIN...END (Transact-SQL)

Si applica a:SQL Server database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics AnalyticsPlatform System (PDW)SQL analytics endpoint in Microsoft FabricWarehouse in Microsoft Fabric

Include una serie di istruzioni Transact-SQL per consentire l'esecuzione di un gruppo di istruzioni Transact-SQL. BEGIN ed END sono parole chiave del linguaggio per il controllo di flusso.

Convenzioni di sintassi Transact-SQL

Sintassi

BEGIN  
    { sql_statement | statement_block }   
END  

Nota

Per visualizzare la sintassi Transact-SQL per SQL Server 2014 (12.x) e versioni precedenti, vedere la documentazione delle versioni precedenti.

Argomenti

{ sql_statement | statement_block }
Qualsiasi istruzione o raggruppamento di istruzioni Transact-SQL valide definito usando un blocco di istruzioni.

Osservazioni:

I blocchi BEGIN...END possono essere nidificati.

Sebbene tutte le istruzioni Transact-SQL siano valide nell'ambito di un blocco BEGIN...END, alcune istruzioni Transact-SQL non devono essere raggruppate nello stesso batch o blocco di istruzioni.

Esempi

Nell'esempio seguente BEGIN ed END definiscono una serie di istruzioni Transact-SQL eseguite insieme. Se il blocco BEGIN...END non fosse incluso, verrebbero eseguite entrambe le istruzioni ROLLBACK TRANSACTION e verrebbero restituiti entrambi i messaggi PRINT.

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

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 blocco BEGIN...END non è incluso, l'esempio seguente determinerà un ciclo continuo.

-- Uses AdventureWorks  

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

Vedi anche

ALTER TRIGGER (Transact-SQL)
Control-of-Flow Language (Transact-SQL)
CREATE TRIGGER (Transact-SQL)
FINE (BEGIN... END) (Transact-SQL)