Megosztás a következőn keresztül:


Kiszolgálókonfiguráció: az eseményindítók eredményeinek letiltása

A következőkre vonatkozik:SQL Server

Ezzel a beállítással szabályozhatja, hogy az disallow results from triggers eseményindítók eredményhalmazokat adnak-e vissza. Az eredményhalmazokat vissza adó eseményindítók váratlan viselkedést okozhatnak azokban az alkalmazásokban, amelyek nem úgy lettek kialakítva, hogy működjenek velük.

Fontos

Az eseményindítókból származó eredményhalmazok visszaadásának képessége az SQL Server egy későbbi verziójában lesz eltávolítva. Kerülje, hogy új fejlesztési projektekben triggerek használatával adjon vissza eredményhalmazokat, és tervezze meg azoknak az alkalmazásoknak a módosítását, amelyek ezt jelenleg végzik. Ha meg szeretné akadályozni, hogy a triggerek eredményhalmazokat adjanak vissza, módosítsa a triggerek eredményeinek letiltása beállítást 1értékre. Az eseményindítókból származó eredmények letiltásának alapértelmezett beállítása 1 lesz az SQL Server egy későbbi verziójában.

Ha be van 1állítva, a disallow results from triggers beállítás ONértéke . Ennek a beállításnak az alapértelmezett beállítása a 0 (OFF). Ha ez a beállítás 1 (ON) értékre van állítva, az eseményindító által az eredményhalmaz visszaadására tett minden kísérlet meghiúsul, és a felhasználó a következő hibaüzenetet kapja:

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.

A disallow results from triggers beállítás az SQL Server-példány szintjén van alkalmazva, és meghatározza a példányon belüli összes meglévő eseményindító viselkedését.

A disallow results from triggers beállítás egy speciális lehetőség. Ha a sp_configure rendszer által tárolt eljárással módosítja a beállítást, csak akkor módosíthatja az eseményindítók nem engedélyezett eredményeit, ha show advanced options a beállítás értéke 1. A beállítás azonnal érvénybe lép a kiszolgáló újraindítása nélkül.

A következő Transact-SQL kóddal ellenőrizheti, hogy helyesen van-e beállítva a beállítás:

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