disallow results from triggers(서버 구성 옵션)

적용 대상:SQL Server

트리거에서 결과를 허용하지 않음을 사용하여 트리거 가 결과 집합을 반환하는지 여부를 제어합니다. 결과 집합을 반환하는 트리거는 트리거가 작동하지 않는 애플리케이션에 예기치 않은 동작을 유발할 수도 있습니다.

Important

이후 버전의 SQL Server에서는 트리거에서 결과 집합을 반환하는 기능이 제거됩니다. 향후 개발 작업에서는 트리거에서 결과 집합을 반환하지 않도록 하고 현재 이를 수행하는 애플리케이션을 수정하세요. 트리거가 결과 집합을 반환하지 않도록 하려면 disallow results from triggers 옵션을 값 1로 변경합니다. 트리거 옵션에서 허용되지 않는 결과에 대한 기본 설정은 이후 버전의 SQL Server에서 1로 설정됩니다.

1로 설정하면 트리거에서 결과가 허용되지 않음 옵션이 ON으로 설정됩니다. 이 옵션의 기본 설정은 0(OFF)입니다. 이 옵션을 1(ON)로 설정하면 트리거에서 결과 집합을 반환하려는 시도가 실패하고 사용자는 다음 오류 메시지를 받습니다.

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.

disallow results from triggers 옵션은 SQL Server 인스턴스 수준에서 적용되며, 인스턴스에 있는 기존의 모든 트리거에 대한 동작을 결정합니다.

트리거에서 결과가 허용되지 않음 옵션은 고급 옵션입니다. sp_configure 시스템 저장 프로시저를 사용하여 설정을 변경하는 경우 고급 옵션 표시1로 설정된 경우에만 트리거의 결과 허용을 변경할 수 있습니다. 이 설정은 서버를 다시 시작하지 않아도 즉시 적용됩니다.

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

참고 항목