다음을 통해 공유


sp_addmergepublication(Transact-SQL)

적용 대상: SQL Server Azure SQL Managed Instance

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

Transact-SQL 구문 표기 규칙

구문

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

인수

[ @publication = ] N'publication'

만들 병합 게시의 이름입니다. @publication 기본값이 없는 sysname이며 키워드ALL가 아니어야 합니다. 게시 이름은 데이터베이스 내에서 고유해야 합니다.

[ @description = ] N'description'

게시 설명입니다. @description 기본값NULL인 nvarchar(255)입니다.

[ @retention = ] 보존

보존 기간 단위로 지정된 @publication 대한 변경 내용을 저장할 수 있습니다. @retention 기본값14인 int입니다. 보존 기간 단위는 @retention_period_unit 정의됩니다. 구독이 보존 기간 내에 동기화되지 않고 구독이 수신한 보류 중인 변경 내용이 배포자의 정리 작업으로 제거되면 구독이 만료되고 다시 초기화되어야 합니다. 허용되는 최대 보존 기간은 현재 날짜부터 9999년 12월 31일까지의 일 수입니다.

참고 항목

병합 게시의 보존 기간은 서로 다른 표준 시간대의 구독자를 수용할 수 있도록 24시간 유예 기간이 있습니다. 예를 들어 1일의 보존 기간을 설정하는 경우 실제 보존 기간은 48시간입니다.

[ @sync_mode = ] N'sync_mode'

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

설명
native(기본값) 모든 테이블의 기본 모드 대량 복사 프로그램 출력을 생성합니다.
character 모든 테이블의 문자 모드 대량 복사 프로그램 출력을 생성합니다. SQL Server Compact 및 비 SQL Server 구독자를 지원하는 데 필요합니다.

[ @allow_push = ] N'allow_push'

지정된 게시에 대한 밀어넣기 구독을 만들 수 있는지를 지정합니다. @allow_push 게시에 대한 밀어넣기 구독을 허용하는 기본값true인 nvarchar(5)입니다.

[ @allow_pull = ] N'allow_pull'

지정된 게시에 대해 끌어오기 구독을 만들 수 있는지 여부를 지정합니다. @allow_pull 게시에서 끌어오기 구독을 허용하는 기본값true인 nvarchar(5)입니다. SQL Server Compact 구독자를 지원하려면 true를 지정해야 합니다.

[ @allow_anonymous = ] N'allow_anonymous'

지정된 게시에 대해 익명 구독을 만들 수 있는지 여부를 지정합니다. @allow_anonymous 게시에서 익명 구독을 허용하는 기본값true인 nvarchar(5)입니다. SQL Server Compact 구독자를 지원하려면 .를 지정 true해야 합니다.

[ @enabled_for_internet = ] N'enabled_for_internet'

게시에 인터넷을 사용할 수 있는지 여부를 나타내며 구독자에 스냅샷 파일을 전송할 때 FTP(파일 전송 프로토콜)를 사용할 수 있는지 여부를 결정합니다. @enabled_for_internet 기본값false인 nvarchar(5)입니다. 이 경우 true게시의 동기화 파일이 디렉터리에 배치 C:\Program Files\Microsoft SQL Server\MSSQL\MSSQL.x\Repldata\Ftp 됩니다. 사용자가 Ftp 디렉터리를 만들어야 합니다. 이 경우 false게시를 인터넷 액세스에 사용할 수 없습니다.

[ @centralized_conflicts = ] N'centralized_conflicts'

이 매개 변수는 사용되지 않으며 스크립트의 이전 버전과의 호환성을 위해 유지 관리됩니다. @conflict_logging 사용하여 충돌 레코드가 저장되는 위치를 지정합니다.

[ @dynamic_filters = ] N'dynamic_filters'

병합 게시에서 매개 변수가 있는 행 필터를 사용할 수 있도록 합니다. @dynamic_filters 기본값false인 nvarchar(5)입니다.

참고 항목

이 매개 변수를 지정하지 말고 대신 SQL Server에서 매개 변수가 있는 행 필터가 사용되는지 자동으로 확인하도록 허용해야 합니다. @dynamic_filters 값을 true 지정하는 경우 아티클에 대한 매개 변수가 있는 행 필터를 정의해야 합니다. 자세한 내용은 병합 아티클에 대한 매개 변수가 있는 행 필터 정의 및 수정을 참조하세요.

[ @snapshot_in_defaultfolder = ] N'snapshot_in_defaultfolder'

스냅샷 파일을 기본 폴더에 저장하는지 여부를 지정합니다. @snapshot_in_defaultfolder 기본값true인 nvarchar(5)입니다. 이 경우 true기본 폴더에서 스냅샷 파일을 찾을 수 있습니다. 이 경우 false스냅샷 파일은 @alternate_snapshot_folder 지정된 대체 위치에 저장됩니다. 대체 위치는 다른 서버, 네트워크 드라이브 또는 이동식 미디어(예: 이동식 디스크)에 있을 수 있습니다. 나중에 구독자가 검색할 수 있도록 스냅샷 파일을 FTP(파일 전송 프로토콜) 사이트에 저장할 수도 있습니다. 이 매개 변수는 true일 수 있으며 @alt_snapshot_folder 지정된 위치가 여전히 있습니다. 이 조합은 스냅샷 파일이 기본 위치와 대체 위치 모두에 저장되도록 지정합니다.

[ @alt_snapshot_folder = ] N'alt_snapshot_folder'

스냅샷에 대한 대체 폴더의 위치를 지정합니다. @alt_snapshot_folder 기본값NULL인 nvarchar(255)입니다.

[ @pre_snapshot_script = ] N'pre_snapshot_script'

파일 위치에 대한 포인터를 .sql 지정합니다. @pre_snapshot_script 기본값NULL인 nvarchar(255)입니다. 병합 에이전트 구독자에서 스냅샷을 적용할 때 복제된 개체 스크립트 앞에 사전 스냅샷 스크립트를 실행합니다. 구독 데이터베이스에 연결할 때 병합 에이전트에 사용되는 보안 컨텍스트에서 스크립트가 실행됩니다. 스냅샷 전 스크립트는 SQL Server Compact 구독자에서 실행되지 않습니다.

[ @post_snapshot_script = ] N'post_snapshot_script'

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

[ @compress_snapshot = ] N'compress_snapshot'

@alt_snapshot_folder 위치에 기록된 스냅샷이 Microsoft CAB 형식으로 압축되도록 지정합니다. @compress_snapshot 기본값false인 nvarchar(5)입니다.

  • false 는 스냅샷을 압축할 수 없도록 지정합니다.

  • true 는 스냅샷이 압축되도록 지정합니다.

2GB보다 큰 스냅샷 파일은 압축할 수 없습니다. 압축된 스냅샷 파일은 병합 에이전트 실행되는 위치에서 압축되지 않습니다. 끌어오기 구독은 일반적으로 압축된 스냅샷과 함께 사용되므로 파일이 구독자에서 압축되지 않습니다. 기본 폴더의 스냅샷은 압축할 수 없습니다. SQL Server Compact 구독자를 지원하려면 .를 지정 false해야 합니다.

[ @ftp_address = ] N'ftp_address'

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

[ @ftp_port = ] ftp_port

배포자에 대한 FTP 서비스의 포트 번호입니다. @ftp_port 기본값21인 int입니다. 구독자의 병합 에이전트 선택할 게시 스냅샷 파일이 있는 위치를 지정합니다. 이 속성은 각 게시에 대해 저장되므로 각 게시에는 고유한 @ftp_port 있을 수 있습니다.

[ @ftp_subdirectory = ] N'ftp_subdirectory'

게시에서 FTP를 사용하여 스냅샷 전파를 지원하는 경우 구독자의 병합 에이전트 스냅샷 파일을 선택할 수 있는 위치를 지정합니다. @ftp_subdirectory 기본값ftp인 nvarchar(255)입니다. 이 속성은 각 게시에 대해 저장되므로 각 게시에는 고유한 @ftp_subdirctory 있거나 값으로 NULL 표시된 하위 디렉터리가 없도록 선택할 수 있습니다.

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

<alternate_snapshot_folder>\ftp\<publisher_publicationDB_publication>\<partitionID>.

참고 항목

이전 예제의 값(꺾쇠 괄호)은 게시 및 구독자 파티션의 세부 사항에 따라 달라집니다.

[ @ftp_login = ] N'ftp_login'

FTP 서비스에 연결하는 데 사용되는 사용자 이름입니다. @ftp_login sysname이며 기본값은 .입니다anonymous.

[ @ftp_password = ] N'ftp_password'

FTP 서비스에 연결하는 데 필요한 사용자 암호입니다. @ftp_password sysname이며 기본값은 .입니다NULL.

Important

빈 암호를 사용하지 마세요. 강력한 암호를 사용합니다.

[ @conflict_retention = ] conflict_retention

충돌이 유지되는 보존 기간(일)을 지정합니다. @conflict_retention 충돌 테이블에서 충돌 행이 제거되기 전의 14 기본값(일)을 사용하여 int입니다.

[ @keep_partition_changes = ] N'keep_partition_changes'

미리 계산된 파티션을 사용할 수 없는 경우 파티션 변경 최적화를 사용할지 여부를 지정합니다. @keep_partition_changes 기본값true인 nvarchar(5)입니다.

  • false 는 파티션 변경 내용이 최적화되지 않고 미리 계산된 파티션이 사용되지 않으면 파티션의 데이터가 변경될 때 모든 구독자에게 전송되는 파티션이 확인됨을 의미합니다.

  • true 는 파티션 변경이 최적화되고 변경된 파티션에 행이 있는 구독자만 영향을 받습니다.

사전 계산 파티션을 사용하는 경우 @use_partition_groups 설정하고 @keep_partition_changes true 설정합니다.false 자세한 내용은 매개 변수가 있는 필터 - 미리 계산된 파티션에 최적화를 참조 하세요.

참고 항목

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

SQL Server Compact 구독자의 경우 삭제가 올바르게 전파되도록 @keep_partition_changes 설정 true 해야 합니다. 로 false설정하면 구독자에 예상보다 많은 행이 있을 수 있습니다.

[ @allow_subscription_copy = ] N'allow_subscription_copy'

이 게시를 구독하는 구독 데이터베이스를 복사하는 기능을 설정 또는 해제합니다. @allow_subscription_copy 기본값false인 nvarchar(5)입니다. 복사되는 구독 데이터베이스의 크기는 2GB 미만이어야 합니다.

[ @allow_synctoalternate = ] N'allow_synctoalternate'

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

[ @validate_subscriber_info = ] N'validate_subscriber_info'

매개 변수가 있는 행 필터를 사용할 때 게시된 데이터의 구독자 파티션을 정의하는 데 사용할 함수를 나열합니다. @validate_subscriber_info 기본값NULL인 nvarchar(500)입니다. 이 정보는 병합 에이전트 구독자의 파티션의 유효성을 검사하는 데 사용됩니다. 예를 들어 매개 변수가 있는 행 필터에서 SUSER_SNAME 사용되는 경우 매개 변수는 이어야 @validate_subscriber_info=N'SUSER_SNAME()합니다.

참고 항목

이 매개 변수를 지정하지 말고 SQL Server가 필터링 조건을 자동으로 확인하도록 허용해야 합니다.

[ @add_to_active_directory = ] N'add_to_active_directory'

이 매개 변수는 사용되지 않으며 스크립트의 이전 버전과의 호환성을 위해 유지 관리됩니다. Microsoft Active Directory에 게시 정보를 더 이상 추가할 수 없습니다.

[ @max_concurrent_merge = ] max_concurrent_merge

동시 병합 프로세스의 최대 수입니다. @max_concurrent_merge 기본값0int입니다. 값은 0 지정된 시간에 실행되는 동시 병합 프로세스 수에 제한이 없음을 의미합니다.

이 속성은 병합 게시에 대해 한 시점에 실행할 수 있는 동시 병합 프로세스의 수 제한을 설정합니다. 실행할 수 있는 값보다 동시에 예약된 병합 프로세스가 더 많은 경우 초과 작업이 큐에 배치되고 현재 실행 중인 병합 프로세스가 완료될 때까지 기다립니다.

[ @max_concurrent_dynamic_snapshots = ] max_concurrent_dynamic_snapshots

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

[ @use_partition_groups = ] N'use_partition_groups'

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

설명
true 게시는 사전 계산 파티션을 사용합니다.
false 게시는 미리 계산된 파티션을 사용하지 않습니다.
NULL(기본값) 시스템은 분할 전략을 결정합니다.

기본적으로 사전 계산 파티션이 사용됩니다. 미리 계산된 파티션을 사용하지 않도록 하려면 @use_partition_groups .로 false설정해야 합니다. 시스템에서 NULL사전 계산 파티션을 사용할 수 있는지 여부를 결정합니다. 미리 계산된 파티션을 사용할 수 없는 경우 이 값은 오류를 생성하지 않고 효과적으로 적용됩니다 false . 이러한 경우 일부 최적화를 제공하도록 @keep_partition_changes 설정할 true 수 있습니다. 자세한 내용은 매개 변수가 있는 필터 - 매개 변수가 있는 행 필터매개 변수가 있는 필터 - 미리 계산된 파티션에 최적화를 참조하세요.

[ @publication_compatibility_level = ] N'publication_compatibility_level'

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

버전
90RTM SQL Server 2005(9.x)
100RTM SQL Server 2008(10.0.x)

[ @replicate_ddl = ] replicate_ddl

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

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

  • 열을 삭제하면 sysarticlecolumns 배포 에이전트가 실패할 수 있는 삭제된 열을 포함하는 새 DML 문을 방지하기 위해 업데이트해야 합니다. 복제는 항상 스키마 변경을 복제해야 하므로 @replicate_ddl 매개 변수는 무시됩니다.

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

  • DDL 문이 새 열을 sysarticlecolumns 추가하는 경우 새 열을 포함하지 않습니다. DML 문은 새 열에 대한 데이터를 복제하려고 하지 않습니다. DDL을 복제하거나 복제할 수 없으므로 매개 변수가 적용됩니다.

[ @allow_subscriber_initiated_snapshot = ] N'allow_subscriber_initiated_snapshot'

이 게시의 구독자가 스냅샷 프로세스를 시작하여 데이터 파티션에 대해 필터링된 스냅샷을 생성할 수 있는지를 나타냅니다. @allow_subscriber_initiated_snapshot 기본값false인 nvarchar(5)입니다. true 는 구독자가 스냅샷 프로세스를 시작할 수 있음을 나타냅니다.

[ @allow_web_synchronization = ] N'allow_web_synchronization'

웹 동기화에 게시를 사용할 수 있는지를 지정합니다. @allow_web_synchronization 기본값false인 nvarchar(5)입니다. true 는 HTTPS를 통해 이 게시에 대한 구독을 동기화할 수 있도록 지정합니다. 자세한 내용은 병합 복제를 위한 웹 동기화를 참조하십시오. SQL Server Compact 구독자를 지원하려면 .를 지정 true해야 합니다.

[ @web_synchronization_url = ] N'web_synchronization_url'

웹 동기화에 사용되는 인터넷 URL의 기본값을 지정합니다. @web_synchronization_url 기본값NULL인 nvarchar(500)입니다. sp_addmergepullsubscription_agent 실행될 때 명시적으로 설정되지 않은 경우 기본 인터넷 URL을 정의합니다.

[ @allow_partition_realignment = ] N'allow_partition_realignment'

게시자의 행을 수정하여 파티션을 변경할 때 삭제가 구독자에게 전송되는지 여부를 결정합니다. @allow_partition_realignment 기본값true인 nvarchar(5)입니다.

  • true 는 더 이상 구독자의 파티션에 속하지 않는 데이터를 제거하여 파티션 변경 결과를 반영하기 위해 구독자에게 삭제를 보냅니다.

  • false 는 구독자의 이전 파티션에서 데이터를 둡니다. 여기서 게시자의 이 데이터를 변경하면 이 구독자에 복제되지 않지만 구독자의 변경 내용은 게시자에 복제됩니다.

@allow_partition_realignment false 설정은 기록 목적으로 데이터에 액세스할 수 있어야 하는 경우 이전 파티션에서 구독의 데이터를 유지하는 데 사용됩니다.

참고 항목

@allow_partition_realignment false 설정하여 구독자에 남아 있는 데이터는 읽기 전용인 것처럼 처리해야 하지만 복제 시스템에서는 적용되지 않습니다.

[ @retention_period_unit = ] N'retention_period_unit'

@retention 설정된 보존 기간에 대한 단위를 지정합니다. @retention_period_unit nvarchar(10)이며 다음 값 중 하나일 수 있습니다.

버전
day(기본값) 보존 기간은 일 단위로 지정됩니다.
week 보존 기간(주)을 지정합니다.
month 보존 기간은 월 단위로 지정됩니다.
year 보존 기간은 연도로 지정됩니다.

[ @generation_leveling_threshold = ] generation_leveling_threshold

하나의 생성에 포함되는 변경 내용 수를 지정합니다. 세대는 게시자 또는 구독자에게 전달되는 변경 내용의 컬렉션입니다. @generation_leveling_threshold 기본값1000int입니다.

[ @automatic_reinitialization_policy = ] automatic_reinitialization_policy

@force_reinit_subscription 값을 지정한 게시 변경에 필요한 자동 다시 초기화 전에 구독자에서 변경 내용을 1 업로드할지 여부를 지정합니다. @automatic_reinitialization_policy 비트이며 기본값은 .입니다0.

1 는 자동 다시 초기화가 발생하기 전에 구독자에서 변경 내용이 업로드됨을 의미합니다.

Important

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

[ @conflict_logging = ] N'conflict_logging'

충돌 레코드를 저장할 위치를 지정합니다. @conflict_logging nvarchar(15)이며 다음 값 중 하나일 수 있습니다.

설명
publisher 충돌 레코드는 게시자에 저장됩니다.
subscriber 충돌 레코드가 충돌을 발생시킨 구독자에 저장됩니다. SQL Server Compact 구독자에 대해서는 지원되지 않습니다.
both 충돌 레코드는 게시자와 구독자 모두에 저장됩니다.
NULL(기본값) 복제는 @conflict_logging @publication_compatibility_level 값90RTM 있는 시점과 publisher 다른 모든 경우에 자동으로 설정합니다.both

반환 코드 값

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

설명

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

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

동일한 데이터베이스 개체를 게시하는 여러 게시가 있는 경우 복제ALTER TABLE, ALTER VIEW, ALTER PROCEDUREALTER FUNCTIONALTER TRIGGER DDL 문의 @replicate_ddl1 이 있는 게시만 있습니다. 그러나 삭제된 ALTER TABLE DROP COLUMN 열을 게시하는 모든 게시에서 DDL 문이 복제됩니다.

SQL Server Compact 구독자의 경우 @alternate_snapshot_folder 값은 @snapshot_in_default_folder false인 경우에만 사용됩니다.

게시에 DDL 복제를 사용하도록 설정(@replicate_ddl = 1)하면 게시에 대한 DDL을 복제하지 않는 변경을 수행하려면 먼저 @replicate_ddl 설정하기 위해 sp_changemergepublication 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'AdventureWorks2022'; 
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 [AdventureWorks2022]
EXEC sp_addmergepublication 
-- These parameters are optional.
  @publication = @publication,
  -- optional parameters 
  @description = N'Merge publication of AdventureWorks2022.',
  @publication_compatibility_level  = N'120RTM';

-- 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수 있습니다.