Какова область применения 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)

Другие вопросы по тегам