sp_changesubstatus(Transact-SQL)
적용 대상: SQL Server Azure SQL Managed Instance
기존 구독자의 상태를 변경합니다. 이 저장 프로시저는 게시 데이터베이스의 게시자에서 실행됩니다.
구문
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 기본값NULL
인 int입니다.
[ @frequency_interval = ] frequency_interval
@frequency_type 설정된 빈도에 적용할 값입니다. @frequency_interval 기본값NULL
인 int입니다.
[ @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 기본값NULL
인 int입니다.
[ @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 기본값NULL
인 int입니다.
[ @active_end_date = ] active_end_date
배포 작업이 예약되지 않는 날짜로 형식이 지정됩니다 yyyyMMdd
. @active_end_date 기본값NULL
인 int입니다.
[ @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
수 있습니다.