sp_check_for_sync_trigger(Transact-SQL)

적용 대상:SQL ServerAzure SQL Managed Instance

사용자 정의 트리거 또는 저장 프로시저가 즉시 업데이트 구독에 사용되는 복제 트리거의 컨텍스트에서 호출되고 있는지 여부를 결정합니다. 이 저장 프로시저는 게시 데이터베이스의 게시자 또는 구독 데이터베이스의 구독자에서 실행됩니다.

Transact-SQL 구문 표기 규칙

구문

sp_check_for_sync_trigger [ @tabid = ] 'tabid'   
    [ , [ @trigger_op = ] 'trigger_output_parameters' OUTPUT ]  
    [ , [ @fonpublisher = ] fonpublisher ]  

인수

[@tabid = ] 'tabid'
즉시 업데이트 트리거를 검사하는 테이블의 개체 ID입니다. tabid는 기본값이 없는 int입니다.

[@trigger_op = ] 'trigger_output_parameters' OUTPUT
출력 매개 변수에서 호출되고 있는 트리거 유형을 반환할지 여부를 지정합니다. trigger_output_parameters char(10)이며 이러한 값 중 하나일 수 있습니다.

설명
기능 INSERT 트리거
Upd UPDATE 트리거
Del DELETE 트리거
NULL(기본값)

[ @fonpublisher = ] fonpublisher 저장 프로시저가 실행되는 위치를 지정합니다. fonpublisher는 비트이며 기본값은 0입니다. 0이면 실행이 구독자에 있고, 1이면 실행이 게시자에 있습니다.

반환 코드 값

0은 저장 프로시저가 즉시 업데이트 트리거의 컨텍스트 내에서 호출되지 않음을 나타냅니다. 1은 즉시 업데이트 트리거의 컨텍스트 내에서 호출되고 있으며 @trigger_op 반환되는 트리거 유형임을 나타냅니다.

설명

sp_check_for_sync_trigger 스냅샷 복제 및 트랜잭션 복제에 사용됩니다.

sp_check_for_sync_trigger 복제 및 사용자 정의 트리거 간에 조정하는 데 사용됩니다. 이 저장 프로시저는 복제 트리거의 컨텍스트 내에서 호출되는지 여부를 결정합니다. 예를 들어 사용자 정의 트리거 본문에서 프로시저 sp_check_for_sync_trigger 호출할 수 있습니다. sp_check_for_sync_trigger 0을 반환하면 사용자 정의 트리거는 처리를 계속합니다. sp_check_for_sync_trigger 1을 반환하면 사용자 정의 트리거가 종료됩니다. 이렇게 하면 복제 트리거가 테이블을 업데이트할 때 사용자 정의 트리거가 실행되지 않습니다.

A. 구독자 테이블의 트리거에 코드 추가

다음 예에서는 구독자 테이블의 트리거에 사용될 수 있는 코드를 보여 줍니다.

DECLARE @retcode int, @trigger_op char(10), @table_id int  
SELECT @table_id = object_id('tablename')  
EXEC @retcode = sp_check_for_sync_trigger @table_id, @trigger_op OUTPUT  
IF @retcode = 1  
RETURN  

B. 게시자 테이블의 트리거에 코드 추가

이 코드는 게시자의 테이블에 있는 트리거에 추가할 수도 있습니다. 코드는 비슷하지만 sp_check_for_sync_trigger 호출에는 추가 매개 변수가 포함됩니다.

DECLARE @retcode int, @trigger_op char(10), @table_id int, @fonpublisher int  
SELECT @table_id = object_id('tablename')  
SELECT @fonpublisher = 1  
EXEC @retcode = sp_check_for_sync_trigger @table_id, @trigger_op OUTPUT, @fonpublisher  
IF @retcode = 1  
RETURN  

사용 권한

sp_check_for_sync_trigger 저장 프로시저는 sys.objects 시스템 뷰에서 SELECT 권한이 있는 모든 사용자가 실행할 수 있습니다.

참고 항목

트랜잭션 복제에 대한 업다이블 구독