Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Wie setze ich SET XACT_ABORT ON in einer SQL Server-Transaktion?

Normalerweise setzen Sie xact_abort als Teil des Hauptteils der gespeicherten Prozedur:

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

Es gibt zwei „besondere“ Einstellungen, die von der Sitzung gespeichert werden, die die Prozedur erstellt hat. Erklärung von MSDN:

Wenn Sie also eine gespeicherte Prozedur erstellen, kopiert SQL Server die Option QUOTED_IDENTIFIER aus der Verbindung in die Prozedurdefinition. Das Ziel ist, dass jemand anderes mit einer anderen QUOTED_IDENTIFIER-Einstellung immer noch das Verhalten erhält, das der Autor der Prozedur beabsichtigt hat.

Dasselbe gilt nicht für XACT_ABORT .