Transazioni implicite

Se in una connessione è attivata la modalità di esecuzione implicita delle transazioni, dopo che è stato eseguito il commit o il rollback della transazione corrente, nell'istanza di Motore di database di SQL Server viene avviata automaticamente una nuova transazione. Non è necessario specificare l'inizio di una transazione. È sufficiente eseguirne il commit o il rollback. La modalità di esecuzione implicita delle transazioni genera il concatenamento delle transazioni.

Se viene impostata la modalità di esecuzione implicita delle transazioni per una connessione, l'istanza di Motore di database avvia automaticamente una transazione dopo l'esecuzione di una delle istruzioni seguenti:

ALTER TABLE

INSERT

CREATE

OPEN

DELETE

REVOKE

DROP

SELECT

FETCH

TRUNCATE TABLE

GRANT

UPDATE

La transazione risulta attiva fino a quando non si esegue un'istruzione COMMIT o ROLLBACK. Dopo il commit o il rollback della prima transazione, l'istanza di Motore di database avvia automaticamente una nuova transazione ogni volta che nella connessione viene eseguita una delle istruzioni indicate. Viene in tal modo generata una catena di transazioni implicite fino a quando la modalità implicita non viene disattivata.

La modalità di esecuzione implicita delle transazioni viene impostata tramite l'istruzione Transact-SQL SET oppure tramite le funzioni e i metodi delle API di database.

Nota

In una sessione MARS una transazione Transact-SQL implicita diventa una transazione con ambito batch. Se per la transazione con ambito batch non viene eseguito il commit o il rollback al completamento del batch, SQL Server esegue automaticamente il rollback della transazione. Per ulteriori informazioni, vedere Controllo delle transazioni (Motore di database) e Istruzioni della transazione (Transact-SQL).