다음을 통해 공유


sp_addmergepublication(Transact-SQL)

업데이트: 2006년 12월 12일

새 병합 게시를 만듭니다. 이 저장 프로시저는 게시되는 데이터베이스의 게시자에서 실행됩니다.

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

구문

sp_addmergepublication [ @publication = ] 'publication' 
    [ , [ @description = ] 'description' 
    [ , [ @retention = ] retention ] 
    [ , [ @sync_mode = ] 'sync_mode' ] 
    [ , [ @allow_push = ] 'allow_push' ] 
    [ , [ @allow_pull = ] 'allow_pull' ] 
    [ , [ @allow_anonymous = ] 'allow_anonymous' ] 
    [ , [ @enabled_for_internet = ] 'enabled_for_internet' ] 
    [ , [ @centralized_conflicts = ] 'centralized_conflicts' ] 
        [ , [ @dynamic_filters = ] 'dynamic_filters' ] 
    [ , [ @snapshot_in_defaultfolder = ] 'snapshot_in_default_folder' ] 
    [ , [ @alt_snapshot_folder = ] 'alternate_snapshot_folder' ] 
        [ , [ @pre_snapshot_script = ] 'pre_snapshot_script' ] 
    [ , [ @post_snapshot_script = ] 'post_snapshot_script' ] 
    [ , [ @compress_snapshot = ] 'compress_snapshot' ] 
    [ , [ @ftp_address = ] 'ftp_address' ] 
    [ , [ @ftp_port = ] ftp_port ] 
    [ , [ @ftp_subdirectory = ] 'ftp_subdirectory' ] 
    [ , [ @ftp_login = ] 'ftp_login' ] 
    [ , [ @ftp_password = ] 'ftp_password' ] 
    [ , [ @conflict_retention = ] conflict_retention ] 
    [ , [ @keep_partition_changes = ] 'keep_partition_changes' ] 
    [ , [ @allow_subscription_copy = ] 'allow_subscription_copy' ] 
    [ , [ @allow_synctoalternate = ] 'allow_synctoalternate' ] 
    [ , [ @validate_subscriber_info = ] 'validate_subscriber_info' ] 
    [ , [ @add_to_active_directory = ] 'add_to_active_directory' ] 
    [ , [ @max_concurrent_merge = ] maximum_concurrent_merge ] 
    [ , [ @max_concurrent_dynamic_snapshots = ] max_concurrent_dynamic_snapshots ]
    [ , [ @use_partition_groups = ] 'use_partition_groups' ]
    [ , [ @publication_compatibility_level = ] 'backward_comp_level' ]
    [ , [ @replicate_ddl = ] replicate_ddl ]
    [ , [ @allow_subscriber_initiated_snapshot = ] 'allow_subscriber_initiated_snapshot' ] 
    [ , [ @allow_web_synchronization = ] 'allow_web_synchronization' ] 
    [ , [ @web_synchronization_url = ] 'web_synchronization_url' ]
    [ , [ @allow_partition_realignment = ] 'allow_partition_realignment' ]
    [ , [ @retention_period_unit = ] 'retention_period_unit' ]
    [ , [ @generation_leveling_threshold = ] generation_leveling_threshold ]
    [ , [ @automatic_reinitialization_policy = ] automatic_reinitialization_policy ]
    [ , [ @conflict_logging = ] 'conflict_logging' ]

인수

  • [ @publication = ] 'publication'
    만들 병합 게시의 이름입니다. publicationsysname이고 기본값은 없으며 키워드가 ALL이 아니어야 합니다. 게시의 이름은 데이터베이스 내에서 고유해야 합니다.
  • [ @description = ] 'description'
    게시에 대한 설명입니다. description은 **nvarchar(255)**이며 기본값은 NULL입니다.
  • [ @retention=] retention
    지정된 publication의 변경 내용을 저장할 보존 기간(보존 기간 단위)입니다. retentionint이며 기본값은 14단위입니다. 보존 기간 단위는 retention_period_unit에 의해 정의됩니다. 보존 기간 내에 구독이 동기화되지 않고 접수하여 보류 중인 변경 내용이 배포자에서 정리 작업에 의해 제거되었다면 구독이 만료되며 다시 초기화해야 합니다. 최대 허용 보존 기간은 9999년 12월 31일과 현재 날짜 사이의 일수입니다.

    [!참고] 병합 게시의 보존 기간은 다양한 표준 시간대의 구독자를 수용하기 위해 24시간의 유예 기간을 갖습니다. 예를 들어 보존 기간을 하루로 설정한 경우 실제 보존 기간은 48시간이 됩니다.

  • [ @sync_mode=] 'sync_mode'
    게시에 대한 구독자의 초기 동기화 모드입니다. sync_mode는 **nvarchar(10)**이고 다음 값 중 하나일 수 있습니다.

    설명

    native(기본값)

    모든 테이블의 기본 모드 대량 복사 프로그램 출력을 생성합니다.

    character

    모든 테이블의 문자 모드 대량 복사 프로그램 출력을 생성합니다. SQL Server 2005 Compact Edition 및 비-SQL Server(Non-SQL Server) 구독자를 지원하는 데 필요합니다.

  • [ @allow_push=] 'allow_push'
    지정된 게시에 대해 밀어넣기 구독을 만들 수 있는지의 여부를 나타냅니다. allow_push는 **nvarchar(5)**이며 기본값은 게시에서 밀어넣기 구독을 허용하는 TRUE입니다.
  • [ @allow_pull=] 'allow_pull'
    지정된 게시에 대해 끌어오기 구독을 만들 수 있는지의 여부를 나타냅니다. allow_pull은 **nvarchar(5)**이며 기본값은 게시에서 끌어오기 구독을 허용하는 TRUE입니다. SQL Server 2005 Compact Edition 구독자를 지원하려면 true를 지정해야 합니다.
  • [ @allow_anonymous=] 'allow_anonymous'
    지정된 게시에 대해 익명 구독을 만들 수 있는지의 여부를 나타냅니다. allow_anonymous는 **nvarchar(5)이며 기본값은 게시에서 익명 구독을 허용하는 TRUE입니다. SQL Server 2005 Compact Edition 구독자를 지원하려면true를 지정해야 합니다.
  • [ @enabled_for_internet=] 'enabled_for_internet'
    게시를 인터넷에 사용할 수 있는지 지정하고 구독자에게 스냅숏 파일을 전송할 때 FTP(파일 전송 프로토콜)를 사용할 수 있는지 결정합니다. enabled_for_internet은 **nvarchar(5)**이며 기본값은 FALSE입니다. true이면 게시의 동기화 파일은 C:\Program Files\Microsoft SQL Server\MSSQL\MSSQL.x\Repldata\Ftp 디렉터리에 저장되며 반드시 사용자가 Ftp 디렉터리를 만들어야 합니다. false인 경우 게시는 인터넷 액세스에 사용할 수 없습니다.
  • [ @centralized_conflicts = ] 'centralized_conflicts'
    이 매개 변수는 더 이상 사용되지 않으며 이전 버전의 스크립트와의 호환성을 위해서만 지원됩니다. conflict_logging을 사용하여 충돌 레코드를 저장할 위치를 지정할 수 있습니다.
  • [ @dynamic_filters =] 'dynamic_filters'
    병합 게시에서 매개 변수가 있는 행 필터를 사용하도록 설정합니다. dynamic_filters는 **nvarchar(5)**이며 기본값은 FALSE입니다.

    [!참고] 이 매개 변수를 직접 지정하기보다는 SQL Server가 매개 변수가 있는 행 필터를 사용할지 여부를 자동으로 결정할 수 있도록 허용해야 합니다. dynamic_filters 값을 true로 지정하는 경우 해당 아티클에 대해 매개 변수가 있는 행 필터를 정의해야 합니다. 자세한 내용은 How to: Define and Modify a Parameterized Row Filter for a Merge Article (Replication Transact-SQL Programming)을 참조하십시오.

  • [ @snapshot_in_defaultfolder = ] 'snapshot_in_default_folder'
    기본 폴더에 스냅숏 파일을 저장할지 여부를 지정합니다. snapshot_in_default_folder는 **nvarchar(5)**이며 기본값은 TRUE입니다. true인 경우 기본 폴더에 스냅숏 파일이 저장됩니다. false인 경우 alternate_snapshot_folder로 지정한 대체 위치에 스냅숏 파일이 있습니다. 대체 위치는 다른 서버, 네트워크 드라이브 또는 이동식 미디어(예를 들어 CD-ROM 또는 이동식 디스크)가 될 수 있습니다. 또한 구독자가 나중에 검색할 수 있도록 FTP(파일 전송 프로토콜) 사이트에 스냅숏 파일을 저장할 수도 있습니다. 이 매개 변수가 true인 경우에도 여전히 alt_snapshot_folder에 위치를 지정할 수 있습니다. 이 조합은 스냅숏 파일이 기본 위치 및 대체 위치 양쪽 모두에 저장될 수 있도록 지정합니다.
  • [ @alt_snapshot_folder = ] 'alternate_snapshot_folder'
    스냅숏을 저장하기 위한 대체 폴더의 위치를 지정합니다. alternate_snapshot_folder는 **nvarchar(255)**이며 기본값은 NULL입니다.
  • [ @pre_snapshot_script = ] 'pre_snapshot_script'
    .sql 파일 위치에 대한 포인터를 지정합니다. pre_snapshot_script는 **nvarchar(255)**이며 기본값은 NULL입니다. 병합 에이전트는 스냅숏을 구독자에 적용할 때 복제된 임의의 개체 스크립트를 실행하기 전에 프리 스냅숏 스크립트를 실행합니다. 구독 데이터베이스에 연결할 때 병합 에이전트에 사용되는 보안 컨텍스트에서 스크립트가 실행됩니다. 프리 스냅숏 스크립트는 SQL Server 2005 Compact Edition 구독자에서는 실행되지 않습니다.
  • [ @post_snapshot_script = ] 'post_snapshot_script'
    .sql 파일 위치에 대한 포인터를 지정합니다. post_snapshot_script는 **nvarchar(255)**이며 기본값은 NULL입니다. 병합 에이전트는 초기 동기화 동안 복제된 다른 모든 개체 스크립트와 데이터를 적용한 후에 포스트 스냅숏 스크립트를 실행합니다. 구독 데이터베이스에 연결할 때 병합 에이전트에 사용되는 보안 컨텍스트에서 스크립트가 실행됩니다. 포스트 스냅숏 스크립트는 SQL Server 2005 Compact Edition 구독자에서는 실행되지 않습니다.
  • [ @compress_snapshot = ] 'compress_snapshot'
    @alt_snapshot_folder 위치에 기록된 스냅숏을 Microsoft CAB 형식으로 압축하도록 지정합니다. compress_snapshot은 **nvarchar(5)**이며 기본값은 FALSE입니다. false를 지정하면 스냅숏을 압축하지 않으며 true를 지정하면 스냅숏을 압축합니다. 2GB 이상의 스냅숏 파일은 압축할 수 없습니다. 압축된 스냅숏 파일은 병합 에이전트가 실행되는 위치에 풀립니다. 압축 스냅숏은 구독자에서 압축 파일을 풀 수 있도록 일반적으로 끌어오기 구독과 함께 사용됩니다. 기본 폴더의 스냅숏은 압축할 수 없습니다. **SQL Server 2005 Compact Edition 구독자를 지원하려면 false를 지정해야 합니다.
  • [ @ftp_address = ] 'ftp_address'
    배포자를 위한 FTP 서비스의 네트워크 주소입니다. ftp_addresssysname이며 기본값은 NULL입니다. 구독자의 병합 에이전트가 선택할 게시 스냅숏 파일의 위치를 지정합니다. 이 속성은 게시별로 저장되므로 각 게시는 다른 ftp_address를 가질 수 있습니다. 해당 게시는 FTP를 사용하는 스냅숏 전파를 지원해야 합니다.
  • [ @ftp_port= ] ftp_port
    배포자를 위한 FTP 서비스의 포트 번호입니다. ftp_portint이며 기본값은 21입니다. 구독자의 병합 에이전트가 선택할 게시 스냅숏 파일의 위치를 지정합니다. 이 속성은 게시별로 저장되므로 각 게시는 자체 ftp_port를 가질 수 있습니다.
  • [ @ftp_subdirectory = ] 'ftp_subdirectory'
    해당 게시가 FTP를 사용하는 스냅숏 전파를 지원할 경우 구독자의 병합 에이전트가 선택할 스냅숏 파일의 위치를 지정합니다. ftp_subdirectory는 **nvarchar(255)**이며 기본값은 NULL입니다. 이 속성은 게시별로 저장되므로 각 게시는 자체 ftp_subdirctory를 가질 수 있으며 또는 NULL 값으로 하위 디렉터리가 없음을 지정할 수 있습니다.

    매개 변수가 있는 필터를 이용해 게시에 대한 스냅숏을 미리 생성할 때 각 구독자 파티션에 대한 데이터 스냅숏은 자체 폴더 내에 있어야 합니다. FTP를 사용하여 미리 생성된 스냅숏에 대한 디렉터리 구조는 다음 구조를 따라야 합니다.

    alternate_snapshot_folder\ftp\publisher_publicationDB_publication\partitionID

    [!참고] 위에서 기울임꼴로 표시한 값은 게시와 구독자 파티션의 지정 사항에 따라 달라집니다.

  • [ @ftp_login = ] 'ftp_login'
    FTP 서비스로 연결하는 데 사용할 사용자 이름입니다. ftp_loginsysname이며 기본값은 'anonymous'입니다.
  • [ @ftp_password = ] 'ftp_password'
    FTP 서비스로 연결하는 데 사용할 사용자 암호입니다. ftp_passwordsysname이며 기본값은 NULL입니다.

    ms176103.security(ko-kr,SQL.90).gif보안 정보:
    빈 암호를 사용하지 마십시오. 강력한 암호를 사용하십시오.
  • [ @conflict_retention = ] conflict_retention
    충돌을 보존하는 보존 기간(일)을 지정합니다. conflict_retentionint이며 기본값은 충돌 테이블에서 충돌 행을 지우기 전까지 14일입니다.
  • [ @keep_partition_changes = ] 'keep_partition_changes'
    미리 계산된 파티션을 사용할 수 없을 때 파티션 변경 최적화를 사용할지 여부를 지정합니다. keep_partition_changes는 **nvarchar(5)**이며 기본값은 TRUE입니다. false는 파티션 변경이 최적화되지 않았음을 의미하며 미리 계산된 파티션을 사용하지 않으면 파티션에서 데이터가 변경될 때 모든 구독자에게 보낸 파티션을 확인합니다. true는 파티션 변경이 최적화되었음을 의미하며 변경된 파티션에 있는 행을 가진 구독자만 영향을 받습니다. 미리 계산된 파티션을 사용하는 경우 use_partition_groupstrue로 설정하고 keep_partition_changesfalse로 설정합니다. 자세한 내용은 미리 계산된 파티션으로 매개 변수가 있는 필터 성능 최적화를 참조하십시오.

    [!참고] keep_partition_changes에 값 true를 지정하는 경우 스냅숏 에이전트 매개 변수 -MaxNetworkOptimization에 값 1을 지정합니다. 이 매개 변수에 대한 자세한 내용은 Replication Snapshot Agent를 참조하십시오. 에이전트 매개 변수를 지정하는 방법은 복제 에이전트 관리를 참조하십시오.

  • [ @allow_subscription_copy= ] 'allow_subscription_copy'
    이 게시를 구독하는 구독 데이터베이스를 복사하는 기능을 활성화하거나 비활성화합니다. allow_subscription_copy는 **nvarchar(5)**이며 기본값은 FALSE입니다. 복사할 구독 데이터베이스의 크기는 2GB보다 작아야 합니다.
  • [ @allow_synctoalternate = ] 'allow_synctoalternate'
    이 게시자와 동기화할 수 있도록 대체 동기화 파트너를 활성화합니다. allow_synctoalternate는 **nvarchar(5)**이며 기본값은 FALSE입니다. SQL Server 2005 Compact Edition 구독자에 대해서는 대체 동기화 파트너가 지원되지 않습니다.
  • [ @validate_subscriber_info = ] 'validate_subscriber_info'
    매개 변수가 있는 행 필터를 사용할 때 게시된 데이터의 구독자 파티션을 정의하는 데 사용할 함수를 나열합니다. validate_subscriber_info는 **nvarchar(500)**이며 기본값은 NULL입니다. 병합 에이전트는 이 정보를 사용하여 구독자의 파티션에 대한 유효성을 검사합니다. 예를 들어 매개 변수가 있는 행 필터에 SUSER_SNAME(Transact-SQL)을 사용하는 경우 매개 변수는 @validate_subscriber_info=N'SUSER_SNAME()'이 되어야 합니다.

    [!참고] 이 매개 변수를 직접 지정하기보다는 SQL Server가 필터링 조건을 자동으로 결정할 수 있도록 허용해야 합니다.

  • [ @add_to_active_directory = ] 'add_to_active_directory'
    이 매개 변수는 더 이상 사용되지 않으며 이전 버전의 스크립트와의 호환성을 위해서만 지원됩니다. 더 이상 Microsoft Active Directory에 게시 정보를 추가할 수 없습니다.
  • [ @max_concurrent_merge = ] maximum_concurrent_merge
    동시 병합 프로세스의 최대 수입니다. maximum_concurrent_mergeint이며 기본값은 0입니다. 이 속성 값이 0이면 한 시점에 실행할 수 있는 동시 병합 프로세스의 수에 제한이 없음을 의미합니다. 이 속성은 병합 게시에 대해 한 시점에 실행할 수 있는 동시 병합 프로세스의 수 제한을 설정합니다. 실행 허용된 값보다 많은 병합 프로세스가 동시에 계획되면 초과 작업은 큐로 이동하여 현재 실행 중인 병합 프로세스가 끝날 때까지 대기합니다.
  • [ @max_concurrent_dynamic_snapshots =] max_concurrent_dynamic_snapshots
    구독자 파티션을 위한 필터링된 데이터 스냅숏을 생성하기 위해 동시에 실행할 수 있는 스냅숏 에이전트 세션의 최대 수입니다. maximum_concurrent_dynamic_snapshotsint이며 기본값은 0입니다. 0인 경우 스냅숏 세션의 수에 제한이 없습니다. 실행하도록 허용된 값보다 많은 스냅숏 프로세스를 동시에 실행하도록 예약할 경우 초과 작업은 큐에 두고 현재 실행 중인 스냅숏 프로세스가 완료될 때까지 기다립니다.
  • [ @use_partition_groups= ] 'use_partition_groups'
    동기화 프로세스를 최적화하는 데 미리 계산된 파티션을 사용하도록 지정합니다. use_partition_groups는 **nvarchar(5)**이며 다음 값 중 하나일 수 있습니다.

    설명

    true

    게시에서 미리 계산된 파티션을 사용합니다.

    false

    게시에서 미리 계산된 파티션을 사용하지 않습니다.

    NULL(기본값)

    시스템이 분할 전략을 결정합니다.

    기본적으로 미리 계산된 파티션이 사용됩니다. 미리 계산된 파티션을 사용하지 않으려면 use_partition_groupsfalse로 설정해야 합니다. NULL인 경우 미리 계산된 파티션을 사용할지 여부를 시스템이 결정합니다. 미리 계산된 파티션을 사용할 수 없는 경우에는 이 값이 사실상 false가 되며 오류는 발생하지 않습니다. 이런 경우 약간의 최적화를 위해 keep_partition_changestrue로 설정할 수 있습니다. 자세한 내용은 매개 변수가 있는 행 필터미리 계산된 파티션으로 매개 변수가 있는 필터 성능 최적화를 참조하십시오.

  • [ @publication_compatibility_level= ] backward_comp_level
    게시의 이전 버전과의 호환성을 나타냅니다. backward_comp_level은 **nvarchar(6)**이며 다음 값 중 하나일 수 있습니다.

    버전

    70RTM

    Microsoft SQL Server 7.0

    70SP1

    SQL Server 7.0 서비스 팩 1

    70SP2

    SQL Server 7.0 서비스 팩 2

    70SP3

    SQL Server 7.0 서비스 팩 3

    70SP4

    SQL Server 7.0 서비스 팩 4

    80RTM

    Microsoft SQL Server 2000

    80SP1

    SQL Server 2000 서비스 팩 1

    80SP3(기본값)

    SQL Server 2000 서비스 팩 3

    90RTM

    Microsoft SQL Server 2005

  • [ @replicate_ddl= ] replicate_ddl
    해당 게시에 대해 스키마 복제가 지원되는지 여부를 나타냅니다. replicate_ddlint이며 기본값은 1입니다. 1은 게시자에서 실행된 DDL(데이터 정의 언어) 문이 복제됨을 나타내고 0은 DDL 문이 복제되지 않음을 나타냅니다. 자세한 내용은 게시 데이터베이스의 스키마 변경을 참조하십시오.
  • [ @allow_subscriber_initiated_snapshot= ] 'allow_subscriber_initiated_snapshot'
    이 게시에 대한 구독자가 스냅숏 프로세스를 시작하여 자신의 데이터 파티션을 위한 필터링된 스냅숏을 생성할 수 있는지 여부를 나타냅니다. allow_subscriber_initiated_snapshot은 **nvarchar(5)**이며 기본값은 FALSE입니다. true는 구독자가 스냅숏 프로세스를 시작할 수 있음을 나타냅니다.
  • [ @allow_web_synchronization = ] 'allow_web_synchronization'
    해당 게시에 웹 동기화를 사용할 수 있는지 여부를 지정합니다. allow_web_synchronization은 **nvarchar(5)**이며 기본값은 FALSE입니다. true는 HTTPS를 통해 이 게시에 대한 구독을 동기화할 수 있음을 나타냅니다. 자세한 내용은 병합 복제에 대한 웹 동기화를 참조하십시오. **SQL Server 2005 Compact Edition 구독자를 지원하려면 true를 지정해야 합니다.
  • [ @web_synchronization_url= ] 'web_synchronization_url'
    웹 동기화에 사용할 인터넷 URL의 기본값을 지정합니다. web_synchronization_url은 **nvarchar(500)**이며 기본값은 NULL입니다. sp_addmergepullsubscription_agent를 실행할 때 명시적으로 인터넷 URL을 설정하지 않은 경우 기본 인터넷 URL을 정의합니다.
  • [ @allow_partition_realignment = ] 'allow_partition_realignment']
    게시자에서 행을 수정하여 파티션이 변경되는 경우 삭제 내용을 구독자로 보낼 것인지 결정합니다. allow_partition_realignment는 **nvarchar(5)**이며 기본값은 TRUE입니다. true를 지정하면 삭제 내용을 구독자로 보내며 더 이상 구독자 파티션의 일부가 아닌 데이터를 제거하여 파티션 변경의 결과를 반영합니다. false를 지정하면 이전 파티션 데이터를 구독자에 유지합니다. 게시자에서 변경한 데이터는 구독자로 복제하지 않는 반면 구독자에서 변경한 사항은 게시자로 복제됩니다. allow_partition_realignmentfalse로 설정하면 기록을 관리하는 목적으로 데이터에 액세스하는 경우 이전 파티션에서 받은 데이터를 구독에 유지할 수 있습니다.

    [!참고] allow_partition_realignmentfalse로 설정하여 구독자에 유지되는 데이터는 읽기 전용인 것처럼 취급해야 하지만 복제 시스템에서 강제 적용하는 것은 아닙니다.

  • [ @retention_period_unit= ] 'retention_period_unit'
    retention으로 설정한 보존 기간의 단위를 지정합니다. retention_period_unit은 **nvarchar(10)**이며 다음 값 중 하나일 수 있습니다.

    버전

    day(기본값)

    보존 기간을 일 단위로 지정합니다.

    week

    보존 기간을 주 단위로 지정합니다.

    month

    보존 기간을 월 단위로 지정합니다.

    year

    보존 기간을 년 단위로 지정합니다.

  • [ @generation_leveling_threshold = ] generation_leveling_threshold
    하나의 생성에 포함되는 변경 내용 수를 지정합니다. 생성은 게시자 또는 구독자에 배달되는 변경 내용 모음입니다. generation_leveling_thresholdint이고 기본값은 1000입니다. 자세한 내용은 병합 복제의 변경 내용 추적 및 열거 방법을 참조하십시오.
  • [ @automatic_reinitialization_policy = ] automatic_reinitialization_policy
    @force_reinit_subscription에 값 1이 지정된 경우 게시 변경에 따라 요구되는 자동 다시 초기화를 수행하기 전에 구독자에서 변경 내용을 업로드할지 여부를 지정합니다. automatic_reinitialization_policy는 비트이며 기본값은 0입니다. 1은 자동 다시 초기화를 수행하기 전에 구독자로부터 변경 내용이 업로드됨을 의미합니다.

    ms176103.note(ko-kr,SQL.90).gif중요:
    매개 변수가 있는 필터를 추가, 삭제 또는 변경할 경우 보류 중인 구독자의 변경 내용을 다시 초기화 중에 게시자로 업로드할 수 없습니다. 보류 중인 변경 내용을 업로드하려면 필터를 변경하기 전에 모든 구독을 동기화하십시오.
  • [ @conflict_logging = ] 'conflict_logging'
    충돌 레코드를 저장할 곳을 지정합니다. conflict_logging은 **nvarchar(15)**이며 다음 값 중 하나일 수 있습니다.

    설명

    publisher

    충돌 레코드가 게시자에 저장됩니다.

    subscriber

    충돌이 발생한 구독자에 충돌 레코드가 저장됩니다. SQL Server 2005 Compact Edition 구독자에 대해서는 지원되지 않습니다.

    both

    충돌 레코드가 게시자와 구독자 모두에 저장됩니다.

    NULL(기본값)

    복제는 backward_comp_level 값이 90RTM인 경우 conflict_loggingboth로 설정하며 그렇지 않으면 publisher로 설정합니다.

반환 코드 값

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

주의

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

@add_to_active_directory 매개 변수를 사용하여 Active Directory에 게시 개체를 나열하려면 Active Directory에 미리 SQL Server 개체를 만들어야 합니다.

동일한 데이터베이스 개체를 게시하는 여러 개의 게시가 있는 경우 replicate_ddl 값이 1인 게시만 ALTER TABLE, ALTER VIEW, ALTER PROCEDURE, ALTER FUNCTION 및 ALTER TRIGGER DDL 문을 복제합니다. 그러나 ALTER TABLE DROP COLUMN DDL 문은 삭제된 열을 게시하는 모든 게시에 의해 복제됩니다.

SQL Server 2005 Compact Edition 구독자에서는 snapshot_in_default_folder의 값이 false인 경우 alternate_snapshot_folder 값만 사용됩니다.

DDL 복제가 활성화된(replicate_ddl**=1**) 게시에 복제되지 않는 DDL 변경을 수행하기 위해서는 먼저 sp_changemergepublication을 실행하여 replicate_ddl0으로 설정해야 합니다. 복제되지 않는 DDL 문을 실행한 다음 sp_changemergepublication을 실행하여 DDL 복제를 다시 활성화할 수 있습니다.

사용 권한

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

-- To avoid storing the login and password in the script file, the value 
-- is passed into SQLCMD as a scripting variable. 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".

--Declarations for adding a merge publication
DECLARE @publicationDB AS sysname;
DECLARE @publication AS sysname;
DECLARE @login AS sysname;
DECLARE @password AS sysname;
SET @publicationDB = N'AdventureWorks'; 
SET @publication = N'AdvWorksSalesOrdersMerge'; 
SET @login = $(Login);
SET @password = $(Password);

-- Enable merge replication on the publication database, using defaults.
USE master
EXEC sp_replicationdboption 
  @dbname=@publicationDB, 
  @optname=N'merge publish',
  @value = N'true' 

-- Create a new merge publication, explicitly setting the defaults. 
USE [AdventureWorks]
EXEC sp_addmergepublication 
-- These parameters are optional.
  @publication = @publication,
  -- optional parameters 
  @description = N'Merge publication of AdventureWorks.',
  @publication_compatibility_level  = N'90RTM';

-- Create a new snapshot job for the publication.
EXEC sp_addpublication_snapshot 
  @publication = @publication, 
  @job_login = @login, 
  @job_password = @password;
GO

참고 항목

참조

sp_changemergepublication(Transact-SQL)
sp_dropmergepublication(Transact-SQL)
sp_helpmergepublication(Transact-SQL)
복제 저장 프로시저(Transact-SQL)

관련 자료

How to: Create a Publication (Replication Transact-SQL Programming)
데이터 및 데이터베이스 개체 게시

도움말 및 정보

SQL Server 2005 지원 받기

변경 내역

릴리스 내역

2006년 12월 12일

새로운 내용
  • 스냅숏 에이전트 매개 변수 -MaxNetworkOptimization을 사용하는 방법에 대한 정보를 추가했습니다.
  • generation_leveling_threshold 매개 변수에 대한 정보를 추가했습니다.