SET XACT_ABORT ON
instruerar SQL Server att återställa hela transaktionen och avbryta batchen när ett körtidsfel uppstår. Den täcker dig i fall som en kommandotimeout som inträffar på klientapplikationen snarare än inom SQL Server själv (som inte täcks av standarden XACT_ABORT OFF
inställning.)
Eftersom en tidsgräns för en fråga lämnar transaktionen öppen, SET XACT_ABORT ON
rekommenderas i alla lagrade procedurer med explicita transaktioner (såvida du inte har en specifik anledning att göra annat) eftersom konsekvenserna av att en applikation utför arbete på en anslutning till en öppen transaktion är katastrofala.
Det finns en riktigt bra översikt på Dan Guzmans blogg,