Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Qual è il vantaggio dell'utilizzo di SET XACT_ABORT ON in una stored procedure?

SET XACT_ABORT ON indica a SQL Server di eseguire il rollback dell'intera transazione e di interrompere il batch quando si verifica un errore di runtime. Ti copre in casi come il timeout di un comando che si verifica nell'applicazione client piuttosto che all'interno di SQL Server stesso (che non è coperto dall'impostazione predefinita XACT_ABORT OFF impostazione.)

Poiché il timeout della query lascerà aperta la transazione, SET XACT_ABORT ON è consigliato in tutte le stored procedure con transazioni esplicite (a meno che tu non abbia un motivo specifico per fare diversamente) poiché le conseguenze di un'applicazione che esegue il lavoro su una connessione con una transazione aperta sono disastrose.

C'è un'ottima panoramica sul blog di Dan Guzman,