Dela via


Serverkonfiguration: Tillåt inte resultat från utlösare

gäller för:SQL Server

Använd alternativet disallow results from triggers för att styra om utlösare returnerar resultatuppsättningar. Utlösare som returnerar resultatuppsättningar kan orsaka oväntat beteende i program som inte är utformade för att fungera med dem.

Viktig

Möjligheten att returnera resultatuppsättningar från utlösare tas bort i en framtida version av SQL Server. Undvik att returnera resultatuppsättningar från utlösare i nytt utvecklingsarbete och planera att ändra program som för närvarande gör detta. För att förhindra att utlösare returnerar resultatuppsättningar ändrar du alternativet för att förhindra resultat från utlösare till värdet 1. Standardinställningen för alternativet för att avvisa resultat från utlösare kommer att anges till 1 i en framtida version av SQL Server.

När det är inställt på 1disallow results from triggers är alternativet inställt på ON. Standardinställningen för det här alternativet är 0 (OFF). Om det här alternativet är inställt på 1 (ON) misslyckas alla försök av en utlösare att returnera en resultatuppsättning och användaren får följande felmeddelande:

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.

Alternativet disallow results from triggers tillämpas på SQL Server-instansnivå och avgör beteendet för alla befintliga utlösare i instansen.

Alternativet disallow results from triggers är ett avancerat alternativ. Om du använder den sp_configure system lagrade proceduren för att ändra inställningen kan du ändra tillåtna resultat från utlösare endast när show advanced options är inställt på 1. Inställningen börjar gälla omedelbart utan omstart av servern.

Du kan kontrollera om alternativet är korrekt inställt med hjälp av följande Transact-SQL kod:

-- 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 option is an advanced option so that must be enabled first
EXECUTE sp_configure 'show advanced options', 1;

RECONFIGURE;
GO

-- Set the disallow results from triggers option
EXECUTE sp_configure 'disallow results from triggers', 1;
EXECUTE 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