Dela via


tillåt inte resultat från utlösare (serverkonfigurationsalternativ)

gäller för:SQL Server

Använd alternativet för att inte tillåta resultat från utlösare och 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 värdet är inställt på 1är alternativet , som förhindrar resultat från utlösare, 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 för att inte tillåta resultat från utlösare tillämpas på SQL Server-instansnivå och avgör beteendet för alla befintliga utlösare i instansen.

Alternativet att inte tillåta resultat från utlösare är ett avancerat alternativ. Om du använder den lagrade systemproceduren sp_configure för att ändra inställningen kan du endast förhindra resultat från utlösare när visa avancerade alternativ ä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 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

Se även