Какова область применения XACT_ABORT?
Какова область действия оператора SET XACT_ABORT в SQL Server 2005? То есть: блок начала-конца, процедура или триггер, соединение, база данных, сервер?
2 ответа
Technet Использование параметров в SQL Server намекает на то, что все параметры SET находятся в области действия на уровне соединения или пакета.
MSDN SET Заявления добавляет детали:
Если инструкция SET выполняется в хранимой процедуре или триггере, значение параметра SET восстанавливается после возврата управления из хранимой процедуры или триггера. Кроме того, если инструкция SET указана в строке динамического SQL, которая запускается с помощью sp_executesql или EXECUTE, значение параметра SET восстанавливается после того, как элемент управления возвращается из пакета, указанного в строке динамического SQL.
Также возможно включить XACT_ABORT по умолчанию для всех пользователей с помощью пользовательских опций:
EXEC sp_configure 'user options', 16384
RECONFIGURE WITH OVERRIDE
Это также может быть применено для выбранных пользователей только через пользовательский триггер входа.
Смотрите также важные подробности о поведении XACT_ABORT.
Я думаю, эта статья из BOL отвечает на ваш вопрос: SET (Transact-SQL)