sp_marksubscriptionvalidation(Transact-SQL)

적용 대상:SQL Server

현재 열려 있는 트랜잭션을 지정된 구독자에 대한 구독 수준 유효성 검사 트랜잭션으로 표시합니다. 이 저장 프로시저는 게시 데이터베이스의 게시자에서 실행됩니다.

Transact-SQL 구문 표기 규칙

구문

  
sp_marksubscriptionvalidation [ @publication = ] 'publication'  
        , [ @subscriber = ] 'subscriber'  
        , [ @destination_db = ] 'destination_db'  
    [ , [ @publisher = ] 'publisher' ]  

인수

[ @publication = ] 'publication' 게시의 이름입니다. 게시는 sysname이며 기본값은 없습니다.

[ @subscriber = ] 'subscriber' 구독자의 이름입니다. 구독자는 sysname이며 기본값은 없습니다.

[ @destination_db = ] 'destination_db' 대상 데이터베이스의 이름입니다. destination_db 기본값이 없는 sysname입니다.

[ @publisher = ] 'publisher' Microsoft SQL Server 이외 게시자를 지정합니다. 게시자는 sysname이며 기본값은 NULL입니다.

참고 항목

게시자는 SQL Server 게시 자에 속하는 게시에 사용하면 안 됩니다.

반환 코드 값

0 (성공) 또는 1 (실패)

설명

sp_marksubscriptionvalidation 트랜잭션 복제에 사용됩니다.

sp_marksubscriptionvalidation SQL Server 이외 구독자를 지원하지 않습니다.

SQL Server 이외 게시자의 경우 명시적 트랜잭션 내에서 sp_marksubscriptionvalidation 실행할 수 없습니다. 게시자에 액세스하는 데 사용되는 연결된 서버 연결을 통해 명시적 트랜잭션이 지원되지 않기 때문입니다.

sp_marksubscriptionvalidation sp_article_validation(Transact-SQL)함께 사용해야 하며, subscription_level 값을 1로 지정하고 다른 구독자에 대해 현재 열려 있는 트랜잭션을 표시하기 위해 sp_marksubscriptionvalidation 대한 다른 호출과 함께 사용할 수 있습니다.

사용 권한

sysadmin 고정 서버 역할 또는 db_owner 고정 데이터베이스 역할의 멤버만 sp_marksubscriptionvalidation 실행할 수 있습니다.

게시 데이터베이스에 다음 쿼리를 적용하여 구독 수준 유효성 검사 명령을 게시할 수 있습니다. 이러한 명령은 지정된 구독자의 배포 에이전트에 의해 선택됩니다. 첫 번째 트랜잭션은 아티클 'art1'의 유효성을 검사하고 두 번째 트랜잭션은 'art2'의 유효성을 검사합니다. 또한 트랜잭션에서 sp_marksubscriptionvalidation 및 sp_article_validation(Transact-SQL)에 대한 호출이 캡슐화되었습니다. 트랜잭션당 하나의 sp_article_validation(Transact-SQL) 호출만 하는 것이 좋습니다. 이는 sp_article_validation(Transact-SQL) 가 트랜잭션 기간 동안 원본 테이블에 공유 테이블 잠금을 보유하기 때문입니다. 동시성을 최대화하려면 트랜잭션을 짧게 유지해야 합니다.

begin tran  
  
exec sp_marksubscriptionvalidation @publication = 'pub1',  
 @subscriber = 'Sub', @destination_db = 'SubDB'  
  
exec sp_marksubscriptionvalidation @publication = 'pub1',  
 @subscriber = 'Sub2', @destination_db = 'SubDB'  
  
exec sp_article_validation @publication = 'pub1', @article = 'art1',  
 @rowcount_only = 0, @full_or_fast = 0, @shutdown_agent = 0,  
 @subscription_level = 1  
  
commit tran  
  
begin tran  
  
exec sp_marksubscriptionvalidation @publication = 'pub1',  
 @subscriber = 'Sub', @destination_db = 'SubDB'  
  
exec sp_marksubscriptionvalidation @publication = 'pub1',  
 @subscriber = 'Sub2', @destination_db = 'SubDB'  
  
exec sp_article_validation @publication = 'pub1', @article = 'art2',  
 @rowcount_only = 0, @full_or_fast = 0, @shutdown_agent = 0,  
 @subscription_level = 1  
  
commit tran  

참고 항목

시스템 저장 프로시저(Transact-SQL)
복제된 데이터 유효성 검사