다음을 통해 공유


sp_marksubscriptionvalidation(Transact-SQL)

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

항목 링크 아이콘Transact-SQL 구문 표기 규칙

구문

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

인수

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

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

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

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

    [!참고]

    publisher는 SQL Server 게시자에 속하는 게시에 사용하지 마십시오.

반환 코드 값

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

주의

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

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

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

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

사용 권한

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

다음 쿼리는 게시 데이터베이스가 구독 수준 유효성 검사 명령을 게시하는 데 적용할 수 있습니다. 다음 명령은 지정한 구독자의 배포 에이전트에 의해 적용됩니다. 첫 번째 트랜잭션은 'art1' 아티클의 유효성을 검사하며 두 번째 트랜잭션은 'art2' 아티클의 유효성을 검사합니다. 또한 sp_marksubscriptionvalidationsp_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