disallow results from triggers (option de configuration de serveur)
S’applique à : SQL Server
L’option disallow results from triggers permet de spécifier si les déclencheurs doivent ou non retourner des ensembles de résultats. Les déclencheurs qui renvoient des jeux de résultats peuvent provoquer un comportement inattendu des applications qui ne sont pas conçues pour interagir avec eux.
Important
La fonctionnalité de renvoi des jeux de résultats à partir de déclencheurs sera éliminée dans une version ultérieure de SQL Server. Évitez de renvoyer des jeux de résultats provenant de déclencheurs dans un nouveau travail de développement et prévoyez la modification des applications qui y recourent actuellement. Pour empêcher les déclencheurs de retourner des jeux de résultats, attribuez à l’option disallow results from triggers la valeur 1
. La valeur par défaut de l’option disallow results from triggers sera 1
dans une version future de SQL Server.
Lorsqu’elle est définie sur 1
, l’option disallow results from triggers est définie sur ON
(activé). La valeur par défaut de cette option est 0
, c’est-à-dire OFF
(désactivé). Si cette option est définie sur 1
(ON
), toute tentative de la part d'un déclencheur de retourner un ensemble de résultats échoue, et l’utilisateur obtient le message d’erreur suivant :
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.
L’option disallow results from triggers s’applique au niveau de l’instance SQL Server et détermine le comportement de tous les déclencheurs existants au sein de l’instance.
L’option disallow results from triggers est une option avancée. Si vous utilisez la procédure stockée système sp_configure
pour changer sa valeur, vous ne pouvez modifier l’option disallow results from triggers que si l’option show advanced options est définie sur 1
. Le paramètre prend effet immédiatement (sans redémarrage du serveur).
Vous pouvez vérifier si l’option est correctement définie en utilisant le code Transact-SQL suivant :
-- 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