Bagikan melalui


sp_addmergepublication (T-SQL)

Berlaku untuk: SQL Server Azure SQL Managed Instance

Membuat publikasi penggabungan baru. Prosedur tersimpan ini dijalankan di Publisher pada database yang sedang diterbitkan.

Konvensi sintaks transact-SQL

Sintaks

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' ]
[ ; ]

Argumen

[ @publication = ] N'publikasi'

Nama publikasi gabungan yang akan dibuat. @publication adalah sysname, tanpa default, dan tidak boleh menjadi kata kunci ALL. Nama publikasi harus unik dalam database.

[ @description = ] N'description'

Deskripsi publikasi. @description adalah nvarchar(255), dengan default NULL.

[ @retention = ] retensi

Periode retensi, dalam unit periode retensi, untuk menyimpan perubahan untuk @publication yang diberikan. @retention int, dengan default 14. Unit periode retensi ditentukan oleh @retention_period_unit. Jika langganan tidak disinkronkan dalam periode retensi, dan perubahan tertunda yang akan diterimanya akan dihapus oleh operasi pembersihan di Distributor, langganan kedaluwarsa dan harus diinisialisasi ulang. Periode retensi maksimum yang diizinkan adalah jumlah hari antara 31 Desember 9999, dan tanggal saat ini.

Catatan

Periode retensi untuk publikasi gabungan memiliki masa tenggang 24 jam untuk mengakomodasi Pelanggan di zona waktu yang berbeda. Jika, misalnya, Anda menetapkan periode retensi satu hari, periode retensi aktual adalah 48 jam.

[ @sync_mode = ] N'sync_mode'

Mode sinkronisasi awal pelanggan ke publikasi. @sync_mode adalah nvarchar(10), dan bisa menjadi salah satu nilai berikut.

Nilai Deskripsi
native (default) Menghasilkan output program salinan massal mode asli dari semua tabel.
character Menghasilkan output program salin massal mode karakter dari semua tabel. Diperlukan untuk mendukung Pelanggan SQL Server Compact dan non-SQL Server.

[ @allow_push = ] N'allow_push'

Menentukan apakah langganan push dapat dibuat untuk publikasi yang diberikan. @allow_push adalah nvarchar(5), dengan default true, yang memungkinkan langganan push pada publikasi.

[ @allow_pull = ] N'allow_pull'

Menentukan apakah langganan penarikan dapat dibuat untuk publikasi yang diberikan. @allow_pull adalah nvarchar(5), dengan default true, yang memungkinkan langganan tarik pada publikasi. Anda harus menentukan true untuk mendukung Pelanggan Ringkas SQL Server.

[ @allow_anonymous = ] N'allow_anonymous'

Menentukan apakah langganan anonim dapat dibuat untuk publikasi yang diberikan. @allow_anonymous adalah nvarchar(5), dengan default true, yang memungkinkan langganan anonim pada publikasi. Untuk mendukung Pelanggan Ringkas SQL Server, Anda harus menentukan true.

[ @enabled_for_internet = ] N'enabled_for_internet'

Menentukan apakah publikasi diaktifkan untuk Internet, dan menentukan apakah protokol transfer file (FTP) dapat digunakan untuk mentransfer file rekam jepret ke pelanggan. @enabled_for_internet adalah nvarchar(5), dengan default false. Jika true, file sinkronisasi untuk publikasi dimasukkan ke C:\Program Files\Microsoft SQL Server\MSSQL\MSSQL.x\Repldata\Ftp dalam direktori. Pengguna harus membuat direktori Ftp. Jika false, publikasi tidak diaktifkan untuk akses Internet.

[ @centralized_conflicts = ] N'centralized_conflicts'

Parameter ini tidak digunakan lagi dan dipertahankan untuk kompatibilitas skrip mundur. Gunakan @conflict_logging untuk menentukan lokasi tempat rekaman konflik disimpan.

[ @dynamic_filters = ] N'dynamic_filters'

Memungkinkan publikasi penggabungan untuk menggunakan filter baris berparameter. @dynamic_filters adalah nvarchar(5), dengan default false.

Catatan

Anda tidak boleh menentukan parameter ini, tetapi mengizinkan SQL Server untuk secara otomatis menentukan apakah filter baris berparameter sedang digunakan. Jika Anda menentukan nilai true untuk @dynamic_filters, Anda harus menentukan filter baris berparameter untuk artikel tersebut. Untuk informasi selengkapnya, lihat Menentukan dan Mengubah Filter Baris Berparameter untuk Artikel Penggabungan.

[ @snapshot_in_defaultfolder = ] N'snapshot_in_defaultfolder'

Menentukan apakah file rekam jepret disimpan di folder default. @snapshot_in_defaultfolder adalah nvarchar(5), dengan default true. Jika true, file rekam jepret dapat ditemukan di folder default. Jika false, file rekam jepret disimpan di lokasi alternatif yang ditentukan oleh @alternate_snapshot_folder. Lokasi alternatif dapat berada di server lain, pada drive jaringan, atau pada media yang dapat dilepas (seperti disk yang dapat dilepas). Anda juga dapat menyimpan file rekam jepret ke situs Protokol Transfer File (FTP), untuk diambil oleh Pelanggan di lain waktu. Parameter ini dapat benar dan masih memiliki lokasi yang ditentukan oleh @alt_snapshot_folder. Kombinasi ini menentukan bahwa file rekam jepret disimpan di lokasi default dan alternatif.

[ @alt_snapshot_folder = ] N'alt_snapshot_folder'

Menentukan lokasi folder alternatif untuk rekam jepret. @alt_snapshot_folder adalah nvarchar(255), dengan default NULL.

[ @pre_snapshot_script = ] N'pre_snapshot_script'

Menentukan penunjuk ke .sql lokasi file. @pre_snapshot_script adalah nvarchar(255), dengan default NULL. Agen Penggabungan menjalankan skrip pra-rekam jepret sebelum salah satu skrip objek yang direplikasi saat menerapkan rekam jepret pada Pelanggan. Skrip dijalankan dalam konteks keamanan yang digunakan oleh Agen Penggabungan saat menyambungkan ke database langganan. Skrip pra-rekam jepret tidak dijalankan pada Pelanggan Ringkas SQL Server.

[ @post_snapshot_script = ] N'post_snapshot_script'

Menentukan penunjuk ke .sql lokasi file. @post_snapshot_script adalah nvarchar(255), dengan default NULL. Agen Penggabungan akan menjalankan skrip pasca-rekam jepret setelah semua skrip objek dan data lain yang direplikasi telah diterapkan selama sinkronisasi awal. Skrip dijalankan dalam konteks keamanan yang digunakan oleh Agen Penggabungan saat menyambungkan ke database langganan. Skrip pasca-rekam jepret tidak dijalankan pada Pelanggan Ringkas SQL Server.

[ @compress_snapshot = ] N'compress_snapshot'

Menentukan bahwa rekam jepret yang ditulis ke lokasi @alt_snapshot_folder akan dikompresi ke dalam format Microsoft CAB. @compress_snapshot adalah nvarchar(5), dengan default false.

  • false menentukan bahwa rekam jepret tidak akan dikompresi.

  • true menentukan bahwa rekam jepret akan dikompresi.

File rekam jepret yang lebih besar dari 2 GB tidak dapat dikompresi. File rekam jepret terkompresi tidak dikompresi di lokasi tempat Agen Penggabungan berjalan; Langganan pull biasanya digunakan dengan rekam jepret terkompresi sehingga file tidak dikompresi di Pelanggan. Rekam jepret di folder default tidak dapat dikompresi. Untuk mendukung Pelanggan Ringkas SQL Server, Anda harus menentukan false.

[ @ftp_address = ] N'ftp_address'

Alamat jaringan layanan FTP untuk Distributor. @ftp_address adalah sysname, dengan default NULL. Menentukan di mana file rekam jepret publikasi berada untuk Agen Penggabungan pelanggan untuk diambil. Karena properti ini disimpan untuk setiap publikasi, setiap publikasi dapat memiliki @ftp_address yang berbeda. Publikasi harus mendukung penyebaran rekam jepret menggunakan FTP.

[ @ftp_port = ] ftp_port

Nomor port layanan FTP untuk Distributor. @ftp_port int, dengan default 21. Menentukan di mana file rekam jepret publikasi berada untuk Agen Penggabungan pelanggan untuk diambil. Karena properti ini disimpan untuk setiap publikasi, setiap publikasi dapat memiliki @ftp_port sendiri.

[ @ftp_subdirectory = ] N'ftp_subdirectory'

Menentukan tempat file rekam jepret tersedia untuk Agen Penggabungan pelanggan untuk diambil jika publikasi mendukung penyebaran rekam jepret menggunakan FTP. @ftp_subdirectory adalah nvarchar(255), dengan default ftp. Karena properti ini disimpan untuk setiap publikasi, setiap publikasi dapat memiliki @ftp_subdirctory sendiri atau memilih untuk tidak memiliki subdirektori, yang ditunjukkan dengan NULL nilai.

Saat membuat rekam jepret pra-pembuatan untuk publikasi dengan filter berparameter, rekam jepret data untuk setiap partisi Pelanggan harus berada di foldernya sendiri. Struktur direktori untuk rekam jepret yang telah dibuat sebelumnya menggunakan FTP harus mematuhi struktur berikut:

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

Catatan

Nilai dalam contoh sebelumnya (dalam kurung sudut) bergantung pada spesifikasi publikasi dan partisi Pelanggan.

[ @ftp_login = ] N'ftp_login'

Nama pengguna yang digunakan untuk menyambungkan ke layanan FTP. @ftp_login adalah sysname, dengan default anonymous.

[ @ftp_password = ] N'ftp_password'

Kata sandi pengguna yang digunakan untuk menyambungkan ke layanan FTP. @ftp_password adalah sysname, dengan default NULL.

Penting

Jangan gunakan kata sandi kosong. Gunakan kata sandi yang kuat.

[ @conflict_retention = ] conflict_retention

Menentukan periode retensi, dalam hari, yang konfliknya dipertahankan. @conflict_retention int, dengan default 14 hari sebelum baris konflik dibersihkan dari tabel konflik.

[ @keep_partition_changes = ] N'keep_partition_changes'

Menentukan apakah akan mengaktifkan pengoptimalan perubahan partisi saat partisi yang telah dikomputasi tidak dapat digunakan. @keep_partition_changes adalah nvarchar(5), dengan default true.

  • false berarti bahwa perubahan partisi tidak dioptimalkan, dan ketika partisi yang telah dikomputasi tidak digunakan, partisi yang dikirim ke semua Pelanggan diverifikasi saat data berubah dalam partisi.

  • true berarti bahwa perubahan partisi dioptimalkan, dan hanya Pelanggan yang memiliki baris dalam partisi yang diubah yang terpengaruh.

Saat menggunakan partisi yang telah dikomputasi sebelumnya, atur @use_partition_groups ke true dan atur @keep_partition_changes ke false. Untuk informasi selengkapnya, lihat Filter Berparameter - Optimalkan untuk Partisi yang Telah Dikomputasi.

Catatan

Jika Anda menentukan nilai true untuk @keep_partition_changes, tentukan nilai 1 untuk parameter -MaxNetworkOptimizationAgen Rekam Jepret . Untuk informasi selengkapnya tentang parameter ini, lihat Agen Replikasi Rekam Jepret. Untuk informasi tentang cara menentukan parameter agen, lihat Administrasi Agen Replikasi.

Dengan pelanggan SQL Server Compact, @keep_partition_changes harus diatur ke true untuk memastikan bahwa penghapusan disebarkan dengan benar. Saat diatur ke false, pelanggan mungkin memiliki lebih banyak baris dari yang diharapkan.

[ @allow_subscription_copy = ] N'allow_subscription_copy'

Mengaktifkan atau menonaktifkan kemampuan untuk menyalin database langganan yang berlangganan publikasi ini. @allow_subscription_copy adalah nvarchar(5), dengan default false. Ukuran database langganan yang sedang disalin harus kurang dari 2 GB.

[ @allow_synctoalternate = ] N'allow_synctoalternate'

Diidentifikasi hanya untuk tujuan informasi. Tidak didukung. Kompatibilitas di masa mendatang tidak dijamin.

[ @validate_subscriber_info = ] N'validate_subscriber_info'

Mencantumkan fungsi yang digunakan untuk menentukan partisi Pelanggan dari data yang diterbitkan saat filter baris berparameter digunakan. @validate_subscriber_info adalah nvarchar(500), dengan default NULL. Informasi ini digunakan oleh Agen Penggabungan untuk memvalidasi partisi Pelanggan. Misalnya, jika SUSER_SNAME digunakan dalam filter baris berparameter, parameternya harus @validate_subscriber_info=N'SUSER_SNAME().

Catatan

Anda tidak boleh menentukan parameter ini, tetapi sebaliknya mengizinkan SQL Server untuk secara otomatis menentukan kriteria pemfilteran.

[ @add_to_active_directory = ] N'add_to_active_directory'

Parameter ini tidak digunakan lagi dan dipertahankan untuk kompatibilitas skrip mundur. Anda tidak dapat lagi menambahkan informasi publikasi ke Microsoft Active Directory.

[ @max_concurrent_merge = ] max_concurrent_merge

Jumlah maksimum proses penggabungan bersamaan. @max_concurrent_merge int, dengan default 0. Nilai 0 untuk berarti bahwa tidak ada batasan jumlah proses penggabungan bersamaan yang berjalan pada waktu tertentu.

Properti ini menetapkan batasan jumlah proses penggabungan bersamaan yang dapat dijalankan terhadap publikasi penggabungan pada satu waktu. Jika ada lebih banyak proses penggabungan yang dijadwalkan pada saat yang sama daripada nilai yang diizinkan untuk dijalankan, maka pekerjaan berlebih dimasukkan ke dalam antrean, dan tunggu hingga proses penggabungan yang sedang berjalan selesai.

[ @max_concurrent_dynamic_snapshots = ] max_concurrent_dynamic_snapshots

Jumlah maksimum sesi Agen Rekam Jepret yang dapat dijalankan secara bersamaan untuk menghasilkan rekam jepret data yang difilter untuk partisi Pelanggan. @max_concurrent_dynamic_snapshots int, dengan default 0. Jika 0, tidak ada batasan untuk sesi rekam jepret angka. Jika ada lebih banyak proses rekam jepret yang dijadwalkan pada saat yang sama daripada nilai yang diizinkan untuk dijalankan, maka pekerjaan berlebih dimasukkan ke dalam antrean, dan tunggu hingga proses rekam jepret yang sedang berjalan selesai.

[ @use_partition_groups = ] N'use_partition_groups'

Menentukan bahwa partisi yang telah dikomputasi harus digunakan untuk mengoptimalkan proses sinkronisasi. @use_partition_groups adalah nvarchar(5), dan bisa menjadi salah satu nilai berikut:

Nilai Deskripsi
true Publikasi menggunakan partisi yang telah dikomputasi sebelumnya.
false Publikasi tidak menggunakan partisi yang telah dikomputasi sebelumnya.
NULL (default) Sistem memutuskan strategi partisi.

Partisi yang telah dikomputasi digunakan secara default. Untuk menghindari penggunaan partisi yang telah dikomputasi sebelumnya, @use_partition_groups harus diatur ke false. Ketika NULL, sistem memutuskan apakah partisi yang telah dikomputasi dapat digunakan. Jika partisi yang telah dikomputasi tidak dapat digunakan, maka nilai ini secara efektif menjadi false tanpa menghasilkan kesalahan apa pun. Dalam kasus seperti itu, @keep_partition_changes dapat diatur ke true untuk memberikan beberapa pengoptimalan. Untuk informasi selengkapnya, lihat Filter Berparameter - Filter Baris Berparameter dan Filter Berparameter - Optimalkan untuk Partisi yang Telah Dikomputasi.

[ @publication_compatibility_level = ] N'publication_compatibility_level'

Menunjukkan kompatibilitas publikasi mundur. @publication_compatibility_level adalah nvarchar(6), dan bisa menjadi salah satu nilai berikut:

Nilai Versi
90RTM SQL Server 2005 (9.x)
100RTM SQL Server 2008 (10.0.x)

[ @replicate_ddl = ] replicate_ddl

Menunjukkan apakah replikasi skema didukung untuk publikasi. @replicate_ddl int, dengan default NULL. 1 menunjukkan bahwa pernyataan bahasa definisi data (DDL) yang dijalankan di penerbit direplikasi, dan 0 menunjukkan bahwa pernyataan DDL tidak direplikasi. Untuk informasi selengkapnya, lihat Membuat Perubahan Skema pada Database Publikasi.

Parameter @replicate_ddl dihormati saat pernyataan DDL menambahkan kolom. Parameter @replicate_ddl diabaikan saat pernyataan DDL mengubah atau menjatuhkan kolom karena alasan berikut.

  • Saat kolom dihilangkan, sysarticlecolumns harus diperbarui untuk mencegah pernyataan DML baru menyertakan kolom yang dihilangkan yang akan menyebabkan agen distribusi gagal. Parameter @replicate_ddl diabaikan karena replikasi harus selalu mereplikasi perubahan skema.

  • Saat kolom diubah, jenis data sumber atau nullability mungkin telah berubah, menyebabkan pernyataan DML berisi nilai yang mungkin tidak kompatibel dengan tabel di pelanggan. Pernyataan DML tersebut dapat menyebabkan agen distribusi gagal. Parameter @replicate_ddl diabaikan karena replikasi harus selalu mereplikasi perubahan skema.

  • Saat pernyataan DDL menambahkan kolom baru, sysarticlecolumns tidak menyertakan kolom baru. Pernyataan DML tidak mencoba mereplikasi data untuk kolom baru. Parameter dihormati karena mereplikasi atau tidak mereplikasi DDL dapat diterima.

[ @allow_subscriber_initiated_snapshot = ] N'allow_subscriber_initiated_snapshot'

Menunjukkan apakah Pelanggan untuk publikasi ini dapat memulai proses rekam jepret untuk menghasilkan rekam jepret yang difilter untuk partisi data mereka. @allow_subscriber_initiated_snapshot adalah nvarchar(5), dengan default false. true menunjukkan bahwa Pelanggan dapat memulai proses rekam jepret.

[ @allow_web_synchronization = ] N'allow_web_synchronization'

Menentukan apakah publikasi diaktifkan untuk sinkronisasi Web. @allow_web_synchronization adalah nvarchar(5), dengan default false. true menentukan bahwa langganan untuk publikasi ini dapat disinkronkan melalui HTTPS. Untuk informasi selengkapnya, lihat Sinkronisasi Web untuk Replikasi Penggabungan. Untuk mendukung Pelanggan Ringkas SQL Server, Anda harus menentukan true.

[ @web_synchronization_url = ] N'web_synchronization_url'

Menentukan nilai default URL Internet yang digunakan untuk sinkronisasi Web. @web_synchronization_url adalah nvarchar(500), dengan default NULL. Menentukan URL Internet default jika tidak diatur secara eksplisit saat sp_addmergepullsubscription_agent dijalankan.

[ @allow_partition_realignment = ] N'allow_partition_realignment'

Menentukan apakah penghapusan dikirim ke pelanggan saat modifikasi baris pada penerbit menyebabkannya mengubah partisinya. @allow_partition_realignment adalah nvarchar(5), dengan default true.

  • true mengirim penghapusan ke Pelanggan untuk mencerminkan hasil perubahan partisi dengan menghapus data yang bukan lagi bagian dari partisi Pelanggan.

  • false meninggalkan data dari partisi lama pada Pelanggan, di mana perubahan yang dilakukan pada data ini pada Penerbit tidak mereplikasi ke Pelanggan ini, tetapi perubahan yang dibuat pada Pelanggan mereplikasi ke Penerbit.

Pengaturan @allow_partition_realignment false digunakan untuk menyimpan data dalam langganan dari partisi lama saat data perlu dapat diakses untuk tujuan historis.

Catatan

Data yang tetap berada di Pelanggan sebagai akibat dari pengaturan @allow_partition_realignment harus false diperlakukan seolah-olah bersifat baca-saja; namun, ini tidak diberlakukan oleh sistem replikasi.

[ @retention_period_unit = ] N'retention_period_unit'

Menentukan unit untuk periode retensi yang ditetapkan oleh @retention. @retention_period_unit adalah nvarchar(10), dan bisa menjadi salah satu nilai berikut.

Nilai Versi
day (default) Periode retensi ditentukan dalam hari.
week Periode retensi ditentukan dalam beberapa minggu.
month Periode retensi ditentukan dalam bulan.
year Periode retensi ditentukan dalam tahun.

[ @generation_leveling_threshold = ] generation_leveling_threshold

Menentukan jumlah perubahan yang terkandung dalam satu generasi. Generasi adalah kumpulan perubahan yang dikirimkan ke Penerbit atau Pelanggan. @generation_leveling_threshold int, dengan default 1000.

[ @automatic_reinitialization_policy = ] automatic_reinitialization_policy

Menentukan apakah perubahan diunggah dari Pelanggan sebelum reinisialisasi otomatis yang diperlukan oleh perubahan pada publikasi, di mana nilai 1 ditentukan untuk @force_reinit_subscription. @automatic_reinitialization_policy adalah bit, dengan default 0.

1 berarti bahwa perubahan diunggah dari Pelanggan sebelum reinisialisasi otomatis terjadi.

Penting

Jika Anda menambahkan, menghilangkan, atau mengubah filter berparameter, perubahan yang tertunda di Pelanggan tidak dapat diunggah ke Penerbit selama reinisialisasi. Jika Anda ingin mengunggah perubahan yang tertunda, sinkronkan semua langganan sebelum mengubah filter.

[ @conflict_logging = ] N'conflict_logging'

Menentukan tempat rekaman konflik disimpan. @conflict_logging adalah nvarchar(15), dan bisa menjadi salah satu nilai berikut:

Nilai Deskripsi
publisher Rekaman konflik disimpan di Publisher.
subscriber Rekaman konflik disimpan di Pelanggan yang menyebabkan konflik. Tidak didukung untuk Pelanggan Ringkas SQL Server.
both Rekaman konflik disimpan di Penerbit dan Pelanggan.
NULL (default) Replikasi secara otomatis mengatur @conflict_logging ke both ketika nilai @publication_compatibility_level adalah 90RTM dan ke publisher dalam semua kasus lain.

Mengembalikan nilai kode

0 (berhasil) atau 1 (kegagalan).

Keterangan

sp_addmergepublication digunakan dalam replikasi penggabungan.

Untuk mencantumkan objek publikasi ke Direktori Aktif menggunakan parameter @add_to_active_directory , objek SQL Server harus sudah dibuat di Direktori Aktif.

Jika ada beberapa publikasi yang menerbitkan objek database yang sama, hanya publikasi dengan nilai 1 @replicate_ddl pernyataan replikasi ALTER TABLE, , ALTER VIEW, ALTER PROCEDUREALTER FUNCTION, dan ALTER TRIGGER DDL. Namun, ALTER TABLE DROP COLUMN pernyataan DDL akan direplikasi oleh semua publikasi yang menerbitkan kolom yang dihilangkan.

Untuk Pelanggan Ringkas SQL Server, nilai @alternate_snapshot_folder hanya digunakan ketika nilai @snapshot_in_default_folder adalah false.

Dengan replikasi DDL diaktifkan (@replicate_ddl = 1) untuk publikasi, untuk membuat perubahan DDL non-replikasi pada publikasi, sp_changemergepublication harus terlebih dahulu dijalankan untuk mengatur @replicate_ddl ke 0. Setelah pernyataan DDL yang tidak direplikasi dikeluarkan, sp_changemergepublication dapat dijalankan lagi untuk mengaktifkan kembali replikasi DDL.

Contoh

-- 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

Izin

Hanya anggota peran server tetap sysadmin atau peran database tetap db_owner yang dapat menjalankan sp_addmergepublication.