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,