disallow results from triggers (Serverkonfigurationsoption)

Gilt für: SQL Server

Verwenden Sie die Option Ergebnisse von Triggern nicht zulassen , um zu steuern, ob Trigger Resultsets zurückgeben. Durch Trigger, die Resultsets zurückgeben, kann es in Anwendungen, die hierfür nicht konzipiert wurden, zu unerwartetem Verhalten kommen.

Wichtig

Die Fähigkeit, Resultsets aus Triggern zurückzugeben, wird in einer zukünftigen Version von SQL Serverentfernt. Vermeiden Sie deshalb bei Neuentwicklungen, Resultsets aus Triggern zurückzugeben, und planen Sie die Änderung von Anwendungen, in denen dies derzeit verwendet wird. Ändern Sie die Option „disallow results from triggers“ in 1, um zu verhindern, dass Trigger Resultsets zurückgeben. Die Standardeinstellung für die Option „disallow results from triggers“ wird in einer zukünftigen Version von SQL Server auf 1 festgelegt.

1 bedeutet, dass die Option disallow results from triggers auf ON festgelegt ist. Die Standardeinstellung für diese Option ist 0 (OFF). Wenn diese Option auf 1 (ON) festgelegt ist, können Trigger keine Resultsets zurückgeben, und es wird folgende Fehlermeldung ausgegeben:

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.

Die Option disallow results from triggers wird auf der Instanzebene von SQL Server angewendet und bestimmt das Verhalten sämtlicher vorhandener Trigger in der Instanz.

Bei der Option Ergebnisse von Triggern nicht zulassen handelt es sich um eine erweiterte Option. Wenn Sie die Einstellung mithilfe der gespeicherten Systemprozedur sp_configure ändern, können Sie „disallow results from triggers“ nur ändern, wenn show advanced options auf 1 festgelegt ist. Die Einstellung tritt ohne Neustarten des Servers sofort in Kraft.

Sie können überprüfen, ob die Option ordnungsgemäß festgelegt ist, indem Sie den folgenden Transact-SQL-Code verwenden:

-- 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

Siehe auch