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