다음을 통해 공유


sp_check_for_sync_trigger(Transact-SQL)

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

항목 링크 아이콘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)이며 다음 값 중 하나일 수 있습니다.

    설명

    Ins

    INSERT 트리거

    Upd

    UPDATE 트리거

    Del

    DELETE 트리거

    NULL(기본값)

  • [ @fonpublisher = ] fonpublisher
    저장 프로시저를 실행하는 위치를 지정합니다. fonpublisher는 bit이며 기본값은 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을 반환하는 경우 사용자 정의 트리거가 종료됩니다. 따라서 복제 트리거에 의해 테이블이 업데이트될 때 사용자 정의 트리거가 실행되지 않습니다.

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

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

코드는 게시자에 있는 테이블의 트리거에도 추가될 수 있습니다. 코드는 유사하지만 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 권한이 있는 모든 사용자가 실행할 수 있습니다.