sp_check_for_sync_trigger(Transact-SQL)
적용 대상: SQL Server Azure SQL Managed Instance
구독을 즉시 업데이트하는 데 사용되는 복제 트리거의 컨텍스트에서 사용자 정의 트리거 또는 저장 프로시저가 호출되는지 여부를 결정합니다. 이 저장 프로시저는 게시 데이터베이스의 게시자 또는 구독 데이터베이스의 구독자에서 실행됩니다.
구문
sp_check_for_sync_trigger
[ @tabid = ] tabid
[ , [ @trigger_op = ] 'trigger_op' OUTPUT ]
[ , [ @fonpublisher = ] fonpublisher ]
[ ; ]
인수
[ @tabid = ] tabid
즉시 업데이트 트리거를 검사하는 테이블의 개체 ID입니다. @tabid 기본값이 없는 int입니다.
[ @trigger_op = ] 'trigger_op' OUTPUT
출력 매개 변수가 호출되는 트리거의 형식을 반환할지를 지정합니다. @trigger_op char(10) 형식의 OUTPUT 매개 변수이며 이러한 값 중 하나일 수 있습니다.
값 | 설명 |
---|---|
Ins |
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
를 호출할 수 있습니다. 반환0
하는 경우 sp_check_for_sync_trigger
사용자 정의 트리거는 처리를 계속합니다. 반환1
되는 경우 sp_check_for_sync_trigger
사용자 정의 트리거가 종료됩니다. 이렇게 하면 복제 트리거가 테이블을 업데이트할 때 사용자 정의 트리거가 실행되지 않습니다.
예제
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;
사용 권한
sys.objects 시스템 보기에서 사용 권한이 있는 모든 사용자는 SELECT
실행할 sp_check_for_sync_trigger
수 있습니다.