Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:SQL Server
Database SQL di Azure
Istanza gestita di SQL di Azure
Azure Synapse Analytics
Piattaforma di analisi (PDW)
Endpoint di analisi SQL in Microsoft Fabric
Magazzino in Microsoft Fabric
Database SQL 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
Syntax
BEGIN
{ sql_statement | statement_block }
END
Arguments
{ sql_statement | statement_block }
Qualsiasi istruzione Transact-SQL valida o raggruppamento di istruzioni come definito tramite un blocco di istruzioni.
Remarks
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.
Examples
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;