запретить результаты триггеров (параметр конфигурации сервера)
Применимо к:SQL Server
Параметр disallow results from triggers предназначен, чтобы определить, разрешается ли триггерам возвращать результирующие наборы. Триггеры, которые возвращают результирующие наборы, могут привести к непредвиденному поведению в приложениях, не предназначенных для работы с ними.
Важно!
Возможность возвращать результирующие наборы из триггеров будет удалена в следующей версии SQL Server. Не используйте в разрабатываемых приложениях триггеры, возвращающие результирующие наборы, и запланируйте изменение приложений, которые используют их в настоящее время. Чтобы запретить триггерам возвращать результирующие наборы, измените параметр запретить результаты из триггеров на значение 1
. Параметр по умолчанию для параметра запретить результаты из триггеров будет иметь значение 1
в будущей версии SQL Server.
Если задано значение 1
, параметр запретить результаты из триггеров имеет значение ON
. Значение по умолчанию для этого параметра — 0
(OFF
). Если этот параметр имеет значение 1
(ON
), любая попытка триггера вернуть результирующий набор завершается ошибкой, и пользователь получает следующее сообщение об ошибке:
Msg 524, Level 16, State 1, Procedure <Procedure Name>, Line <Line#>
A trigger returned a resultset and the server option 'disallow_results_from_triggers' is true.
Параметр запретить результаты из триггеров применяется на уровне экземпляра SQL Server и определяет поведение всех существующих триггеров в экземпляре.
Параметр disallow results from triggers является дополнительным. Если для изменения параметра используется sp_configure
системная хранимая процедура, можно изменить запретить результаты триггеров только в том случае, если параметр show advanced options имеет значение 1
. Параметр вступает в силу сразу без перезапуска сервера.
Вы можете проверка, если параметр задан правильно, с помощью следующего кода Transact-SQL:
-- Check the current value for the option
SELECT [name], value_in_use
FROM sys.configurations
WHERE [name] LIKE 'disallow results from triggers';
-- Set the disallow results from triggers option to 1. This is an advanced option so that must be enabled first
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
GO
-- Set the disallow results from triggers option
EXEC sp_configure 'disallow results from triggers', 1;
EXEC sp_configure 'show advanced options', 0;
RECONFIGURE
GO
-- Validate that the option is set to 1
SELECT [name], value_in_use
FROM sys.configurations
WHERE [name] LIKE 'disallow results from triggers';
GO
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по