다음을 통해 공유


sp_changesubstatus(Transact-SQL)

적용 대상: SQL Server Azure SQL Managed Instance

기존 구독자의 상태를 변경합니다. 이 저장 프로시저는 게시 데이터베이스의 게시자에서 실행됩니다.

Transact-SQL 구문 표기 규칙

구문

sp_changesubstatus
    [ [ @publication = ] N'publication' ]
    [ , [ @article = ] N'article' ]
    [ , [ @subscriber = ] N'subscriber' ]
    , [ @status = ] N'status'
    [ , [ @previous_status = ] N'previous_status' ]
    [ , [ @destination_db = ] N'destination_db' ]
    [ , [ @frequency_type = ] frequency_type ]
    [ , [ @frequency_interval = ] frequency_interval ]
    [ , [ @frequency_relative_interval = ] frequency_relative_interval ]
    [ , [ @frequency_recurrence_factor = ] frequency_recurrence_factor ]
    [ , [ @frequency_subday = ] frequency_subday ]
    [ , [ @frequency_subday_interval = ] frequency_subday_interval ]
    [ , [ @active_start_time_of_day = ] active_start_time_of_day ]
    [ , [ @active_end_time_of_day = ] active_end_time_of_day ]
    [ , [ @active_start_date = ] active_start_date ]
    [ , [ @active_end_date = ] active_end_date ]
    [ , [ @optional_command_line = ] N'optional_command_line' ]
    [ , [ @distribution_jobid = ] distribution_jobid OUTPUT ]
    [ , [ @from_auto_sync = ] from_auto_sync ]
    [ , [ @ignore_distributor = ] ignore_distributor ]
    [ , [ @offloadagent = ] offloadagent ]
    [ , [ @offloadserver = ] N'offloadserver' ]
    [ , [ @dts_package_name = ] N'dts_package_name' ]
    [ , [ @dts_package_password = ] N'dts_package_password' ]
    [ , [ @dts_package_location = ] dts_package_location ]
    [ , [ @skipobjectactivation = ] skipobjectactivation ]
    [ , [ @distribution_job_name = ] N'distribution_job_name' ]
    [ , [ @publisher = ] N'publisher' ]
    [ , [ @ignore_distributor_failure = ] ignore_distributor_failure ]
[ ; ]

인수

[ @publication = ] N'publication'

게시의 이름 @publication sysname이며 기본값은 .입니다%. @publication 지정되지 않으면 모든 게시가 영향을 받습니다.

[ @article = ] N'article'

아티클의 이름입니다. @article sysname이며 기본값은 .입니다%. 게시에 고유해야 합니다. @article 지정되지 않으면 모든 아티클이 영향을 받습니다.

[ @subscriber = ] N'subscriber'

상태를 변경할 구독자의 이름입니다. @subscriber sysname이며 기본값은 .입니다%. @subscriber 지정하지 않으면 모든 구독자의 상태가 지정된 아티클로 변경됩니다.

[ @status = ] N'status'

테이블의 syssubscriptions 구독 상태입니다. @status sysname이며 이러한 값 중 하나일 수 있습니다.

설명
active 구독자가 동기화되고 데이터를 수신하고 있습니다.
inactive 구독자 항목은 구독 없이 존재합니다.
subscribed 구독자가 데이터를 요청하지만 아직 동기화되지 않았습니다.

[ @previous_status = ] N'previous_status'

구독의 이전 상태입니다. @previous_status sysname이며 기본값은 .입니다NULL. 이 매개 변수를 사용하면 현재 해당 상태가 있는 모든 구독을 변경할 수 있으므로 특정 구독 집합에서 그룹 함수를 허용합니다(예: 모든 활성 구독을 subscribed다시 설정).

[ @destination_db = ] N'destination_db'

대상 데이터베이스의 이름입니다. @destination_db sysname이며 기본값은 .입니다%.

[ @frequency_type = ] frequency_type

배포 작업을 예약할 빈도를 지정합니다. @frequency_type 기본값NULLint입니다.

[ @frequency_interval = ] frequency_interval

@frequency_type 설정된 빈도에 적용할 값입니다. @frequency_interval 기본값NULLint입니다.

[ @frequency_relative_interval = ] frequency_relative_interval

배포 작업의 날짜입니다. 이 매개 변수는 @frequency_type 32(월별 상대)로 설정된 경우에 사용됩니다. @frequency_relative_interval int이며 이러한 값 중 하나일 수 있습니다.

설명
1 첫째
2 두 번째
4 세 번째
8 네 번째
16 마지막
NULL(기본값)

[ @frequency_recurrence_factor = ] frequency_recurrence_factor

@frequency_type 사용되는 되풀이 요소입니다. @frequency_recurrence_factor 기본값NULL인 int입니다.

[ @frequency_subday = ] frequency_subday

정의된 기간 동안 다시 예약할 빈도(분)를 지정합니다. @frequency_subday int이며 이러한 값 중 하나일 수 있습니다.

설명
1 한 번
2 둘째
4 Minute
8 Hour
NULL(기본값)

[ @frequency_subday_interval = ] frequency_subday_interval

@frequency_subday 간격입니다. @frequency_subday_interval 기본값NULLint입니다.

[ @active_start_time_of_day = ] active_start_time_of_day

배포 작업이 처음 예약된 시간이며 형식은 다음과 같습니다 HHmmss. @active_start_time_of_day 기본값NULL인 int입니다.

[ @active_end_time_of_day = ] active_end_time_of_day

배포 작업이 예약되는 것을 중지하고 형식 HHmmss이 지정된 하루 중 시간입니다. @active_end_time_of_day 기본값NULL인 int입니다.

[ @active_start_date = ] active_start_date

배포 작업이 처음 예약된 날짜이며 형식은 다음과 같습니다 yyyyMMdd. @active_start_date 기본값NULLint입니다.

[ @active_end_date = ] active_end_date

배포 작업이 예약되지 않는 날짜로 형식이 지정됩니다 yyyyMMdd. @active_end_date 기본값NULLint입니다.

[ @optional_command_line = ] N'optional_command_line'

선택적 명령 프롬프트입니다. @optional_command_line 기본값NULL인 nvarchar(4000)입니다.

[ @distribution_jobid = ] distribution_jobid OUTPUT

구독 상태를 비활성에서 활성으로 변경할 때 구독 배포자에서 배포 에이전트 작업 ID입니다. 다른 경우에는 정의되지 않습니다. 이 저장 프로시저에 대한 단일 호출에 둘 이상의 배포 에이전트 관련된 경우 결과가 정의되지 않습니다. @distribution_jobid 이진(16) 형식의 OUTPUT 매개 변수입니다.

[ @from_auto_sync = ] from_auto_sync

정보를 제공하기 위해서만 확인됩니다. 지원 안 됨. 향후 호환성은 보장되지 않습니다.

[ @ignore_distributor = ] ignore_distributor

정보를 제공하기 위해서만 확인됩니다. 지원 안 됨. 향후 호환성은 보장되지 않습니다.

[ @offloadagent = ] offloadagent

이 매개 변수는 사용되지 않으며 스크립트의 이전 버전과의 호환성을 위해 유지 관리됩니다. @offloadagent 다른 값 0 으로 설정하면 오류가 발생합니다.

[ @offloadserver = ] N'offloadserver'

이 매개 변수는 사용되지 않으며 스크립트의 이전 버전과의 호환성을 위해 유지 관리됩니다. @offloadserver NULL이 아닌 값으로 설정하면 오류가 발생합니다.

[ @dts_package_name = ] N'dts_package_name'

DTS(데이터 변환 서비스) 패키지의 이름을 지정합니다. @dts_package_name sysname이며 기본값은 .입니다NULL. 예를 들어 이름이 지정된 DTSPub_Package 패키지의 경우 .를 지정 @dts_package_name = N'DTSPub_Package'합니다.

[ @dts_package_password = ] N'dts_package_password'

패키지의 암호를 지정합니다. @dts_package_password nvarchar(524)이며, 기본값NULL은 암호 속성이 변경되지 않은 상태로 유지되도록 지정합니다.

참고 항목

DTS 패키지에는 암호가 있어야 합니다.

[ @dts_package_location = ] dts_package_location

패키지 위치를 지정합니다. @dts_package_location 기본값0인 int입니다.

  • 이 경우 0패키지 위치는 배포자에 있습니다.
  • 이 경우 1패키지 위치는 구독자에 있습니다.

패키지의 위치는 일 수 있습니다distributor.subscriber

[ @skipobjectactivation = ] skipobjectactivation

정보를 제공하기 위해서만 확인됩니다. 지원 안 됨. 향후 호환성은 보장되지 않습니다.

[ @distribution_job_name = ] N'distribution_job_name'

배포 작업의 이름입니다. @distribution_job_name sysname이며 기본값은 .입니다NULL.

[ @publisher = ] N'publisher'

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

SQL Server 게시자의 아티클 속성을 변경할 때는 @publisher 사용하면 안 됩니다.

[ @ignore_distributor_failure = ] ignore_distributor_failure

정보를 제공하기 위해서만 확인됩니다. 지원 안 됨. 향후 호환성은 보장되지 않습니다.

반환 코드 값

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

설명

sp_changesubstatus 는 스냅샷 복제 및 트랜잭션 복제에 사용됩니다.

sp_changesubstatus 는 테이블의 구독자 syssubscriptions 상태를 변경된 상태로 변경합니다. 필요한 경우 테이블의 아티클 상태를 sysarticles 업데이트하여 활성 또는 비활성 상태를 나타냅니다. 필요한 경우 복제된 테이블의 테이블에서 복제 플래그를 sysobjects 설정하거나 해제합니다.

사용 권한

sysadmin 고정 서버 역할의 멤버, db_owner 고정 데이터베이스 역할 또는 구독 작성자만 실행할 sp_changesubstatus수 있습니다.