Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:programu SQL Server
Użyj opcji uniemożliwiającej wyniki z wyzwalaczy, aby kontrolować, czy wyzwalacze zwracają zestawy wyników. Wyzwalacze zwracające zestawy wyników mogą powodować nieoczekiwane zachowanie w aplikacjach, które nie są przeznaczone do pracy z nimi.
Ważny
Możliwość zwracania zestawów wyników z wyzwalaczy zostanie usunięta w przyszłej wersji programu SQL Server. Unikaj zwracania zestawów wyników z wyzwalaczy w nowych pracach programistycznych i zaplanuj modyfikowanie aplikacji, które obecnie to robią. Aby zapobiec zwracaniu zestawów wyników przez wyzwalacze, zmień opcję wyłącz zwracanie wyników przez wyzwalacze na wartość 1
. Ustawienie domyślne dla opcji Nie zezwalaj na wyniki z wyzwalaczy zostanie ustawione na 1
w przyszłej wersji programu SQL Server.
Gdy ustawione jest na wartość 1
, opcja blokowania wyników z wyzwalaczy jest ustawiona na ON
. Ustawieniem domyślnym dla tej opcji jest 0
(OFF
). Jeśli ta opcja jest ustawiona na 1
(ON
), każda próba wywołania wyzwalacza w celu zwrócenia zestawu wyników zakończy się niepowodzeniem, a użytkownik otrzyma następujący komunikat o błędzie:
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.
Opcja nie zezwala na wyniki z wyzwalaczy i jest stosowana na poziomie instancji SQL Server, określając zachowanie wszystkich istniejących wyzwalaczy w tej instancji.
Opcja , która zabrania wyników z wyzwalaczy, jest opcją zaawansowaną. Jeśli używasz procedury składowanej systemu sp_configure
do zmiany ustawienia, możesz zabronić zwracania wyników przez wyzwalacze tylko wtedy, gdy opcja 'pokaż zaawansowane opcje' jest ustawiona na 1
. Ustawienie zostanie zastosowane natychmiast bez ponownego uruchomienia serwera.
Możesz sprawdzić, czy opcja jest poprawnie ustawiona, używając następującego kodu Transact-SQL:
-- 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
Zobacz też
- PRZEKONFIGURUJ (Transact-SQL)
- opcje konfiguracji serwera (SQL Server)
- sp_configure (Transact-SQL)