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

Come impostare SET XACT_ABORT ON in una transazione di SQL Server?

Normalmente imposti xact_abort come parte del corpo della procedura memorizzata:

CREATE PROCEDURE MyProc
AS
SET XACT_ABORT ON
BEGIN TRAN  
....

Ci sono due impostazioni "speciali" che vengono ricordate dalla sessione che ha creato la procedura. Spiegazione da MSDN:

Pertanto, quando si crea una stored procedure, SQL Server copia l'opzione QUOTED_IDENTIFIER dalla connessione alla definizione della procedura. L'obiettivo è che qualcun altro con un'impostazione QUOTED_IDENTIFIER diversa ottenga comunque il comportamento previsto dall'autore della procedura.

Lo stesso non vale per XACT_ABORT .