sp_addmergepublication(Transact-SQL)

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

항목 링크 아이콘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'
    만들 병합 게시의 이름입니다. publication은 sysname이고 기본값은 없으며 키워드가 ALL이 아니어야 합니다. 게시의 이름은 데이터베이스 내에서 고유해야 합니다.

  • [ @description = ] 'description'
    게시에 대한 설명입니다. description은 nvarchar(255)이며 기본값은 NULL입니다.

  • [ @retention = ] retention
    지정된 publication의 변경 내용을 저장할 보존 기간(보존 기간 단위)입니다. retention은 int이며 기본값은 14단위입니다. 보존 기간 단위는 retention_period_unit에 의해 정의됩니다. 보존 기간 내에 구독이 동기화되지 않고 접수하여 보류 중인 변경 내용이 배포자에서 정리 작업에 의해 제거되었다면 구독이 만료되며 다시 초기화해야 합니다. 최대 허용 보존 기간은 9999년 12월 31일과 현재 날짜 사이의 일수입니다.

    [!참고]

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

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

    설명

    native(기본값)

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

    character

    모든 테이블의 문자 모드 대량 복사 프로그램 출력을 생성합니다. Microsoft SQL Server Compact 3.5 SP2 및 SQL Server 이외 구독자를 지원하는 데 필요합니다.

  • [ @allow_push = ] 'allow_push'
    지정된 게시에 대해 밀어넣기 구독을 만들 수 있는지 여부를 나타냅니다. allow_push는 nvarchar(5)이며 기본값은 게시에서 밀어넣기 구독을 허용하는 TRUE입니다.

  • [ @allow_pull = ] 'allow_pull'
    지정된 게시에 대해 끌어오기 구독을 만들 수 있는지 여부를 나타냅니다. allow_pull은 nvarchar(5)이며 기본값은 게시에서 끌어오기 구독을 허용하는 TRUE입니다. SQL Server Compact 3.5 SP2 구독자를 지원하려면 true를 지정해야 합니다.

  • [ @allow_anonymous = ] 'allow_anonymous'
    지정된 게시에 대해 익명 구독을 만들 수 있는지 여부를 나타냅니다. allow_anonymous는 nvarchar(5)이며 기본값은 게시에서 익명 구독을 허용하는 TRUE입니다. SQL Server Compact 3.5 SP2 구독자를 지원하려면 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로 지정하는 경우 해당 아티클에 대해 매개 변수가 있는 행 필터를 정의해야 합니다. 자세한 내용은 방법: 병합 아티클에 대해 매개 변수가 있는 행 필터 정의 및 수정(복제 Transact-SQL 프로그래밍)을 참조하십시오.

  • [ @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 Compact 3.5 SP2 구독자에서는 실행되지 않습니다.

  • [ @post_snapshot_script = ] 'post_snapshot_script'
    .sql 파일 위치에 대한 포인터를 지정합니다. post_snapshot_script는 nvarchar(255)이며 기본값은 NULL입니다. 병합 에이전트는 초기 동기화 동안 복제된 다른 모든 개체 스크립트와 데이터를 적용한 후에 포스트 스냅숏 스크립트를 실행합니다. 구독 데이터베이스에 연결할 때 병합 에이전트에 사용되는 보안 컨텍스트에서 스크립트가 실행됩니다. 포스트 스냅숏 스크립트는 SQL Server Compact 3.5 SP2 구독자에서는 실행되지 않습니다.

  • [ @compress_snapshot = ] 'compress_snapshot'
    @alt_snapshot_folder 위치에 작성되는 스냅숏이 Microsoft CAB 형식으로 압축되도록 지정합니다. compress_snapshot은 nvarchar(5)이며 기본값은 FALSE입니다. false인 경우 스냅숏이 압축되지 않고 true인 경우 스냅숏이 압축됩니다. 2GB 이상의 스냅숏 파일은 압축할 수 없습니다. 압축된 스냅숏 파일은 병합 에이전트가 실행되는 위치에 풀립니다. 압축 스냅숏은 구독자에서 압축 파일을 풀 수 있도록 일반적으로 끌어오기 구독과 함께 사용됩니다. 기본 폴더의 스냅숏은 압축할 수 없습니다. SQL Server Compact 3.5 SP2 구독자를 지원하려면 false를 지정해야 합니다.

  • [ @ftp_address = ] 'ftp_address'
    배포자를 위한 FTP 서비스의 네트워크 주소입니다. ftp_address는 sysname이며 기본값은 NULL입니다. 구독자의 병합 에이전트가 선택할 게시 스냅숏 파일의 위치를 지정합니다. 이 속성은 게시별로 저장되므로 각 게시마다 ftp_address가 다를 수 있습니다. 게시는 FTP를 사용하여 스냅숏 전파를 지원해야 합니다.

  • [ @ftp_port= ] ftp_port
    배포자를 위한 FTP 서비스의 포트 번호입니다. ftp_port는 int이며 기본값은 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_login은 sysname이며 기본값은 'anonymous'입니다.

  • [ @ftp_password = ] 'ftp_password'
    FTP 서비스에 연결하는 데 사용되는 사용자 암호입니다. ftp_password는 sysname이며 기본값은 NULL입니다.

    보안 정보보안 정보

    빈 암호를 사용하지 마십시오. 강력한 암호를 사용하십시오.

  • [ @conflict_retention = ] conflict_retention
    충돌을 보존하는 보존 기간(일)을 지정합니다. conflict_retention은 int이며 기본값은 충돌 테이블에서 충돌 행을 지우기 전까지 14일입니다.

  • [ @keep_partition_changes = ] 'keep_partition_changes'
    사전 계산 파티션을 사용할 수 없을 때 파티션 변경 최적화를 사용할지 여부를 지정합니다. keep_partition_changes는 nvarchar(5)이며 기본값은 TRUE입니다. false는 파티션 변경이 최적화되지 않았음을 의미하며 사전 계산 파티션을 사용하지 않으면 파티션에서 데이터가 변경될 때 모든 구독자에게 보낸 파티션을 확인합니다. true는 파티션 변경이 최적화되었음을 의미하며 변경된 파티션에 있는 행을 가진 구독자만 영향을 받습니다. 사전 계산 파티션을 사용하는 경우 use_partition_groups를 true로 설정하고 keep_partition_changes를 false로 설정합니다. 자세한 내용은 사전 계산 파티션으로 매개 변수가 있는 필터 성능 최적화를 참조하십시오.

    [!참고]

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

    삭제가 올바르게 전파되도록 보장하려면 SQL Server Compact 3.5 SP2 구독자에서 keep_partition_changes를 true로 설정해야 합니다. false로 설정한 경우 구독자에 예상한 것보다 많은 행이 포함될 수 있습니다.

  • [ @allow_subscription_copy= ] 'allow_subscription_copy'
    이 게시를 구독하는 구독 데이터베이스를 복사하는 기능을 설정하거나 해제합니다. allow_subscription_copy는 nvarchar(5)이며 기본값은 FALSE입니다. 복사할 구독 데이터베이스의 크기는 2GB보다 작아야 합니다.

  • [ @allow_synctoalternate = ] 'allow_synctoalternate'
    정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

  • [ @validate_subscriber_info = ] 'validate_subscriber_info'
    매개 변수가 있는 행 필터를 사용할 때 게시된 데이터의 구독자 파티션을 정의하는 데 사용할 함수를 나열합니다. validate_subscriber_info는 nvarchar(500)이며 기본값은 NULL입니다. 병합 에이전트는 이 정보를 사용하여 구독자의 파티션에 대한 유효성을 검사합니다. 예를 들어 매개 변수가 있는 행 필터에 SUSER_SNAME을 사용하는 경우 매개 변수는 @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_merge는 int이며 기본값은 0입니다. 이 속성에 대한 값이 0이면 지정된 시간에 실행 중인 동시 병합 프로세스 수에 제한이 없는 것입니다. 이 속성은 병합 게시에 대해 한 시점에 실행할 수 있는 동시 병합 프로세스의 수 제한을 설정합니다. 실행 허용된 값보다 많은 병합 프로세스가 동시에 계획되면 초과 작업은 큐로 이동하여 현재 실행 중인 병합 프로세스가 끝날 때까지 대기합니다.

  • [ @max_concurrent_dynamic_snapshots =] max_concurrent_dynamic_snapshots
    구독자 파티션을 위한 필터링된 데이터 스냅숏을 생성하기 위해 동시에 실행할 수 있는 스냅숏 에이전트 세션의 최대 수입니다. maximum_concurrent_dynamic_snapshots는 int이며 기본값은 0입니다. 0인 경우 스냅숏 세션의 수에 제한이 없습니다. 실행하도록 허용된 값보다 많은 스냅숏 프로세스를 동시에 실행하도록 예약할 경우 초과 작업은 큐에 두고 현재 실행 중인 스냅숏 프로세스가 완료될 때까지 기다립니다.

  • [ @use_partition_groups = ] 'use_partition_groups'
    동기화 프로세스를 최적화하는 데 사전 계산 파티션을 사용하도록 지정합니다. use_partition_groups는 nvarchar(5)이며 다음 값 중 하나일 수 있습니다.

    설명

    true

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

    false

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

    NULL(기본값)

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

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

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

    버전

    70RTM

    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

    SQL Server 2000

    80SP1

    SQL Server 2000 서비스 팩 1

    80SP2

    SQL Server 2000 서비스 팩 2

    80SP3

    SQL Server 2000 서비스 팩 3

    90RTM

    SQL Server 2005

    100RTM

    SQL Server 2008

  • [ @replicate_ddl = ] replicate_ddl
    게시에 대해 스키마 복제가 지원되는지 여부를 나타냅니다. replicate_ddl은 int이며 기본값은 1입니다. 1은 게시자에서 실행된 DDL(데이터 정의 언어) 문이 복제됨을 나타내고 0은 DDL 문이 복제되지 않음을 나타냅니다. 자세한 내용은 게시 데이터베이스의 스키마 변경을 참조하십시오.

    @replicate_ddl 매개 변수는 DDL 문이 열을 추가하는 경우에 인식됩니다. @replicate_ddl 매개 변수는 DDL 문이 다음과 같은 이유로 열을 변경하거나 삭제할 경우에 무시됩니다.

    • 열이 삭제될 경우 새 DML 문에 삭제된 열이 포함되지 않도록 sysarticlecolumns를 업데이트해야 합니다. 삭제된 열이 포함되면 배포 에이전트가 실패합니다. 복제가 항상 스키마 변경 내용을 복제해야 하므로 @replicate_ddl 매개 변수가 무시됩니다.

    • 열이 변경될 경우 원본 데이터 형식 또는 Null 허용 여부가 변경되었을 수 있으므로 DML 문에 구독자에 있는 테이블과 호환되지 않는 값이 포함될 수 있습니다. 이러한 DML 문으로 인해 배포 에이전트가 실패할 수 있습니다. 복제가 항상 스키마 변경 내용을 복제해야 하므로 @replicate_ddl 매개 변수가 무시됩니다.

    • DDL 문이 새 열을 추가하는 경우 sysarticlecolumns에는 새 열이 포함되지 않습니다. DML 문은 새 열에 대해 데이터 복제를 시도하지 않습니다. 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 Compact 3.5 SP2 구독자를 지원하려면 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_realignment를 false로 설정하면 기록을 관리하는 목적으로 데이터에 액세스하는 경우 이전 파티션에서 받은 데이터를 구독에 유지할 수 있습니다.

    [!참고]

    allow_partition_realignment가 false일 때 구독자에 남은 데이터는 읽기 전용인 것처럼 처리되어야 하지만 복제 시스템에서 이를 강제 적용하지는 않습니다.

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

    버전

    day(기본값)

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

    week

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

    month

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

    year

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

  • [ @generation_leveling_threshold= ] generation_leveling_threshold
    하나의 생성에 포함되는 변경 내용 수를 지정합니다. 생성은 게시자 또는 구독자에 배달되는 변경 내용 모음입니다. generation_leveling_threshold는 int이고 기본값은 1000입니다. 자세한 내용은 병합 복제의 변경 내용 추적 및 열거 방법을 참조하십시오.

  • [ @automatic_reinitialization_policy = ] automatic_reinitialization_policy
    @force_reinit_subscription에 값 1이 지정된 경우 게시 변경에 따라 요구되는 자동 다시 초기화를 수행하기 전에 구독자에서 변경 내용을 업로드할지 여부를 지정합니다. automatic_reinitialization_policy는 비트이며 기본값은 0입니다. 1은 자동 다시 초기화를 수행하기 전에 구독자로부터 변경 내용이 업로드됨을 의미합니다.

    중요 정보중요

    매개 변수가 있는 필터를 추가, 삭제 또는 변경할 경우 보류 중인 구독자의 변경 내용을 다시 초기화 중에 게시자로 업로드할 수 없습니다. 보류 중인 변경 내용을 업로드하려면 필터를 변경하기 전에 모든 구독을 동기화하십시오.

  • [ @conflict_logging = ] 'conflict_logging'
    충돌 레코드를 저장할 곳을 지정합니다. conflict_logging은 nvarchar(15)이며 다음 값 중 하나일 수 있습니다.

    설명

    publisher

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

    subscriber

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

    both

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

    NULL(기본값)

    복제는 backward_comp_level 값이 90RTM인 경우 자동으로 conflict_logging을 both로 설정하며 그렇지 않으면 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 Compact 3.5 SP2 구독자에서는 snapshot_in_default_folder 값이 false인 경우 alternate_snapshot_folder 값만 사용됩니다.

게시에 대해 DDL 복제를 사용하는 상태에서(replicate_ddl**=1**) 복제하지 않을 DDL 변경 내용을 게시에 적용하려면 sp_changemergepublication(Transact-SQL)을 먼저 실행하여 replicate_ddl을 0으로 설정해야 합니다. 복제하지 않을 DDL 문을 실행한 이후에 sp_changemergepublication을 다시 실행하여 DDL 복제를 다시 설정할 수 있습니다.

-- 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'AdventureWorks2008R2'; 
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 [AdventureWorks2008R2]
EXEC sp_addmergepublication 
-- These parameters are optional.
  @publication = @publication,
  -- optional parameters 
  @description = N'Merge publication of AdventureWorks2008R2.',
  @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

사용 권한

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