Condividi tramite


Transazioni (Transact-SQL)

Si applica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceWarehouse in Microsoft FabricDatabase SQL in Microsoft Fabric

Una transazione corrisponde a una singola unità di lavoro. Se la transazione viene eseguita correttamente, viene eseguito il commit di tutte le modifiche dei dati apportate durante la transazione e tali modifiche diventano parte permanente del database. Se si verificano errori durante l'esecuzione della transazione ed è necessario annullarla o eseguirne il rollback, verranno cancellate tutte le modifiche dei dati.

SQL Server supporta le modalità per le transazioni seguenti:

Modalità transazione Description
Transazioni di autocommit Ogni istruzione corrisponde a una transazione.
Transazioni esplicite Ogni transazione viene avviata in modo esplicito con l'istruzione BEGIN TRANSACTION e terminata in modo esplicito con un'istruzione COMMIT o ROLLBACK .
Transazioni implicite Una nuova transazione viene avviata in modo implicito al completamento della transazione precedente, ma ogni transazione viene completata in modo esplicito con un'istruzione COMMIT o ROLLBACK .
Transazioni con ambito batch Applicabile solo a MARS (Multiple Active Result Set). Una transazione definita a livello di ambito di batch è una transazione Transact-SQL esplicita o implicita che inizia in una sessione MARS. Una transazione con ambito batch di cui non viene eseguito il commit o il rollback quando viene completato automaticamente il rollback di un batch da SQL Server.

Per considerazioni speciali relative ai prodotti del data warehouse, vedere Transazioni nel data warehouse o nelle transazioni di Fabric (Azure Synapse Analytics).

Sintassi del controllo delle transazioni

Il motore di database SQL fornisce le istruzioni di transazione seguenti: