문서를 영문으로 보려면 영문 확인란을 선택하세요. 마우스 포인터를 텍스트 위로 이동시켜 팝업 창에서 영문 텍스트를 표시할 수도 있습니다.
번역
영문

sp_addmergesubscription(Transact-SQL)

밀어넣기 또는 끌어오기 병합 구독을 만듭니다. 이 저장 프로시저는 게시 데이터베이스의 게시자에서 실행됩니다.

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

sp_addmergesubscription [ @publication= ] 'publication'
    [ , [ @subscriber = ] 'subscriber' ]
    [ , [ @subscriber_db= ] 'subscriber_db' ]
    [ , [ @subscription_type= ] 'subscription_type' ]
    [ , [ @subscriber_type= ] 'subscriber_type' ]
    [ , [ @subscription_priority= ] subscription_priority ]
    [ , [ @sync_type= ] 'sync_type' ]
    [ , [ @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= ] 'optional_command_line' ]
    [ , [ @description= ] 'description' ]
    [ , [ @enabled_for_syncmgr= ] 'enabled_for_syncmgr' ]
    [ , [ @offloadagent= ] remote_agent_activation]
    [ , [ @offloadserver= ] 'remote_agent_server_name' ]
    [ , [ @use_interactive_resolver= ] 'use_interactive_resolver' ]
    [ , [ @merge_job_name= ] 'merge_job_name' ]
    [ , [ @hostname = ] 'hostname'

[ @publication=] 'publication'

게시의 이름입니다. publicationsysname이며 기본값은 없습니다. 반드시 게시가 이미 존재해야 합니다.

[ @subscriber =] 'subscriber'

구독자의 이름입니다. subscribersysname이며 기본값은 NULL입니다.

[ @subscriber_db=] 'subscriber_db'

구독 데이터베이스의 이름입니다. subscriber_dbsysname이며 기본값은 NULL입니다.

[ @subscription_type=] 'subscription_type'

구독 유형입니다. subscription_typenvarchar(15)이며 기본값은 PUSH입니다. push 인 경우 밀어넣기 구독이 추가되고 병합 에이전트가 배포자에 추가됩니다. pull 인 경우 끌어오기 구독이 추가되고 병합 에이전트는 배포자에 추가되지 않습니다.

참고 참고

익명 구독은 이 저장 프로시저를 사용할 필요가 없습니다.

[ @subscriber_type=] 'subscriber_type'

구독자의 유형입니다. subscriber_typenvarchar(15)이며 다음 값 중 하나일 수 있습니다.

설명

local (기본값)

게시자에게만 알려진 구독자입니다.

global

모든 서버에 알려진 구독자입니다.

SQL Server 2005 이상 버전에서 로컬 구독은 클라이언트 구독이라고 하며 전역 구독은 서버 구독이라고 합니다.

[ @subscription_priority=] subscription_priority

구독의 우선 순위를 나타내는 숫자입니다. subscription_priorityreal이며 기본값은 NULL입니다. 로컬 및 익명 구독의 경우에는 우선 순위가 0.0입니다. 전역 구독의 경우에는 우선 순위가 100.0 미만이어야 합니다.

[ @sync_type=] 'sync_type'

구독 동기화 유형입니다. sync_typenvarchar(15)이며 기본값은 automatic입니다. automatic 또는 none이 될 수 있습니다. automatic 인 경우 게시된 테이블의 스키마 및 초기 데이터가 먼저 구독자에게 전송됩니다. none 인 경우 구독자가 게시된 테이블의 스키마 및 초기 데이터를 이미 가지고 있다고 가정합니다. 시스템 테이블 및 데이터는 항상 전송됩니다.

참고 참고

none 값은 지정하지 않는 것이 좋습니다.

[ @frequency_type=] frequency_type

병합 에이전트가 실행될 시기를 나타내는 값입니다. frequency_typeint이며 다음 값 중 하나일 수 있습니다.

설명

1

한 번

4

매일

8

매주

10

매월

20

매월(frequency_interval에 상대적임)

40

SQL Server 에이전트가 시작될 때

NULL(기본값)

 

[ @frequency_interval=] frequency_interval

병합 에이전트가 실행되는 요일입니다. frequency_intervalint이며 다음 값 중 하나일 수 있습니다.

설명

1

일요일

2

월요일

3

화요일

4

수요일

5

목요일

6

금요일

7

토요일

8

9

평일

10

주말

NULL(기본값)

 

[ @frequency_relative_interval=] frequency_relative_interval

예약된 병합이 빈도 간격에 따라 매월 실행되는 시기입니다. frequency_relative_intervalint이며 다음 값 중 하나일 수 있습니다.

설명

1

첫째

2

둘째

4

셋째

8

넷째

16

마지막

NULL(기본값)

 

[ @frequency_recurrence_factor=] frequency_recurrence_factor

frequency_type에 사용되는 되풀이 비율입니다. frequency_recurrence_factorint이며 기본값은 NULL입니다.

[ @frequency_subday=] frequency_subday

frequency_subday_interval의 단위입니다. frequency_subdayint이며 다음 값 중 하나일 수 있습니다.

설명

1

한 번

2

4

8

시간

NULL(기본값)

 

[ @frequency_subday_interval=] frequency_subday_interval

각 병합 간에 frequency_subday가 발생하는 빈도입니다. frequency_subday_intervalint이며 기본값은 NULL입니다.

[ @active_start_time_of_day=] active_start_time_of_day

하루 중에서 병합 에이전트가 처음으로 실행되도록 예약된 시간이며 HHMMSS 형식으로 표시됩니다. active_start_time_of_dayint이며 기본값은 NULL입니다.

[ @active_end_time_of_day=] active_end_time_of_day

하루 중에서 병합 에이전트가 마지막으로 실행되도록 예약된 시간이며 HHMMSS 형식으로 표시됩니다. active_end_time_of_dayint이며 기본값은 NULL입니다.

[ @active_start_date=] active_start_date

병합 에이전트가 처음으로 실행되도록 예약된 날짜이며 YYYYMMDD 형식으로 표시됩니다. active_start_dateint이며 기본값은 NULL입니다.

[ @active_end_date=] active_end_date

병합 에이전트가 마지막으로 실행되도록 예약된 날짜이며 YYYYMMDD 형식으로 표시됩니다. active_end_dateint이며 기본값은 NULL입니다.

[ @optional_command_line=] 'optional_command_line'

실행할 선택적 명령 프롬프트입니다. optional_command_linenvarchar(4000)이며 기본값은 NULL입니다. 이 매개 변수는 출력을 캡처하여 파일로 저장하는 명령을 추가하거나 구성 파일 또는 특성을 지정하는 데 사용됩니다.

[ @description=] 'description'

해당 병합 구독에 대한 간단한 설명입니다. descriptionnvarchar(255)이며 기본값은 NULL입니다. 이 값은 복제 모니터에서 이름 열에 표시되며 모니터링되는 게시에 대한 구독을 정렬하는 데 사용할 수 있습니다.

[ @enabled_for_syncmgr=] 'enabled_for_syncmgr'

Microsoft Windows 동기화 관리자를 통해 구독을 동기화할 수 있는지 여부를 지정합니다. enabled_for_syncmgrnvarchar(5)이며 기본값은 FALSE입니다. false 인 경우 구독이 동기화 관리자에 등록되지 않습니다. true 이면 구독이 동기화 관리자에 등록되며 Microsoft SQL Server Management Studio를 시작하지 않고 구독을 동기화할 수 있습니다.

[ @offloadagent= ] remote_agent_activation

에이전트를 원격으로 활성화할 수 있음을 나타냅니다. remote_agent_activationbit이며 기본값은 0입니다.

참고 참고

이 매개 변수는 더 이상 사용되지 않으며 이전 버전의 스크립트와의 호환성을 위해서만 유지 관리됩니다.

[ @offloadserver= ] 'remote_agent_server_name'

원격 에이전트 활성화에 사용할 서버의 네트워크 이름을 지정합니다. remote_agent_server_namesysname이며 기본값은 NULL입니다.

[ @use_interactive_resolver= ] 'use_interactive_resolver'

대화형 해결을 허용하는 모든 아티클에 대해 충돌을 대화형으로 해결할 수 있도록 합니다. use_interactive_resolvernvarchar(5)이며 기본값은 FALSE입니다.

[ @merge_job_name= ] 'merge_job_name'

@merge_job_name 매개 변수는 지원되지 않으며 설정할 수 없습니다. merge_job_namesysname이며 기본값은 NULL입니다.

[ @hostname= ] 'hostname'

이 함수가 매개 변수가 있는 필터의 WHERE 절에 사용되는 경우 HOST_NAME에서 반환하는 값을 재정의합니다. Hostnamesysname이며 기본값은 NULL입니다.

중요 정보 중요

성능상의 이유로 LEFT([MyColumn]) = SUSER_SNAME()과 같은 매개 변수가 있는 행 필터 절의 열 이름에는 함수를 적용하지 않는 것이 좋습니다. 필터 절에 HOST_NAME을 사용하고 HOST_NAME 값을 재정의할 경우 CONVERT를 사용하여 데이터 형식을 변환해야 할 수 있습니다. 이를 위한 최선의 구현 방법은 매개 변수가 있는 행 필터 항목의 "HOST_NAME() 값 재정의" 섹션을 참조하십시오.

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

sp_addmergesubscription은 병합 복제에 사용됩니다.

sysadmin 고정 서버 역할의 멤버가 밀어넣기 구독을 만들기 위해 sp_addmergesubscription을 실행할 경우 병합 에이전트 작업이 암시적으로 생성되어 SQL Server 에이전트 서비스 계정에서 실행됩니다. sp_addmergepushsubscription_agent를 실행하고 @job_login@job_password에 대해 다른 에이전트 특정 Windows 계정의 자격 증명을 지정하는 것이 좋습니다. 자세한 내용은 복제 에이전트 보안 모델을 참조하십시오.

-- This script uses sqlcmd scripting variables. They are in the form
-- $(MyVariable). For information about how to use scripting variables  
-- on the command line and in SQL Server Management Studio, see the 
-- "Executing Replication Scripts" section in the topic
-- "Programming Replication Using System Stored Procedures".

DECLARE @publication AS sysname;
DECLARE @subscriber AS sysname;
DECLARE @subscriptionDB AS sysname;
DECLARE @hostname AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
SET @subscriber = $(SubServer);
SET @subscriptionDB = N'AdventureWorksReplica'; 
SET @hostname = N'adventure-works\david8'

-- Add a push subscription to a merge publication.
USE [AdventureWorks2012];
EXEC sp_addmergesubscription 
  @publication = @publication, 
  @subscriber = @subscriber, 
  @subscriber_db = @subscriptionDB, 
  @subscription_type = N'push',
  @hostname = @hostname;

--Add an agent job to synchronize the push subscription.
EXEC sp_addmergepushsubscription_agent 
  @publication = @publication, 
  @subscriber = @subscriber, 
  @subscriber_db = @subscriptionDB, 
  @job_login = $(Login), 
  @job_password = $(Password);
GO

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

커뮤니티 추가 항목

추가
표시: