sp_addmergearticle (T-SQL)

Berlaku untuk:SQL ServerAzure SQL Managed Instance

Menambahkan artikel ke publikasi gabungan yang sudah ada. Prosedur tersimpan ini dijalankan di Publisher pada database publikasi.

Konvensi sintaks transact-SQL

Sintaks

sp_addmergearticle
    [ @publication = ] N'publication'
    , [ @article = ] N'article'
    , [ @source_object = ] N'source_object'
    [ , [ @type = ] N'type' ]
    [ , [ @description = ] N'description' ]
    [ , [ @column_tracking = ] N'column_tracking' ]
    [ , [ @status = ] N'status' ]
    [ , [ @pre_creation_cmd = ] N'pre_creation_cmd' ]
    [ , [ @creation_script = ] N'creation_script' ]
    [ , [ @schema_option = ] schema_option ]
    [ , [ @subset_filterclause = ] N'subset_filterclause' ]
    [ , [ @article_resolver = ] N'article_resolver' ]
    [ , [ @resolver_info = ] N'resolver_info' ]
    [ , [ @source_owner = ] N'source_owner' ]
    [ , [ @destination_owner = ] N'destination_owner' ]
    [ , [ @vertical_partition = ] N'vertical_partition' ]
    [ , [ @auto_identity_range = ] N'auto_identity_range' ]
    [ , [ @pub_identity_range = ] pub_identity_range ]
    [ , [ @identity_range = ] identity_range ]
    [ , [ @threshold = ] threshold ]
    [ , [ @verify_resolver_signature = ] verify_resolver_signature ]
    [ , [ @destination_object = ] N'destination_object' ]
    [ , [ @allow_interactive_resolver = ] N'allow_interactive_resolver' ]
    [ , [ @fast_multicol_updateproc = ] N'fast_multicol_updateproc' ]
    [ , [ @check_permissions = ] check_permissions ]
    [ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
    [ , [ @published_in_tran_pub = ] N'published_in_tran_pub' ]
    [ , [ @force_reinit_subscription = ] force_reinit_subscription ]
    [ , [ @logical_record_level_conflict_detection = ] N'logical_record_level_conflict_detection' ]
    [ , [ @logical_record_level_conflict_resolution = ] N'logical_record_level_conflict_resolution' ]
    [ , [ @partition_options = ] partition_options ]
    [ , [ @processing_order = ] processing_order ]
    [ , [ @subscriber_upload_options = ] subscriber_upload_options ]
    [ , [ @identityrangemanagementoption = ] N'identityrangemanagementoption' ]
    [ , [ @delete_tracking = ] N'delete_tracking' ]
    [ , [ @compensate_for_errors = ] N'compensate_for_errors' ]
    [ , [ @stream_blob_columns = ] N'stream_blob_columns' ]
[ ; ]

Argumen

[ @publication = ] N'publikasi'

Nama publikasi yang berisi artikel. @publication adalah sysname, tanpa default.

[ @article = ] N'article'

Nama artikel. Nama harus unik dalam publikasi. @article adalah sysname, tanpa default. @article harus berada di komputer lokal yang menjalankan SQL Server, dan harus sesuai dengan aturan untuk pengidentifikasi.

[ @source_object = ] N'source_object'

Objek database yang akan diterbitkan. @source_object adalah sysname, tanpa default. Untuk informasi selengkapnya tentang jenis objek yang dapat diterbitkan menggunakan replikasi penggabungan, lihat Menerbitkan Data dan Objek Database.

[ @type = ] N'type'

Jenis artikel. @type adalah sysname, dengan default table, dan bisa menjadi salah satu nilai berikut.

Nilai Deskripsi
table (default) Tabel dengan skema dan data. Replikasi memantau tabel untuk menentukan data yang akan direplikasi.
func schema only Fungsi hanya dengan skema.
indexed view schema only Tampilan terindeks dengan skema saja.
proc schema only Prosedur tersimpan dengan skema saja.
synonym schema only Sinonim dengan skema saja.
view schema only Lihat dengan skema saja.

[ @description = ] N'description'

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

[ @column_tracking = ] N'column_tracking'

Pengaturan untuk pelacakan tingkat kolom. @column_tracking adalah nvarchar(10), dengan default false. false mengaktifkan pelacakan kolom. false menonaktifkan pelacakan kolom dan meninggalkan deteksi konflik di tingkat baris. Jika tabel sudah diterbitkan dalam publikasi gabungan lainnya, Anda harus menggunakan nilai pelacakan kolom yang sama yang digunakan oleh artikel yang ada berdasarkan tabel ini. Parameter ini khusus untuk artikel tabel saja.

Catatan

Jika pelacakan baris digunakan untuk deteksi konflik (default), tabel dasar dapat menyertakan maksimum 1.024 kolom, tetapi kolom harus difilter dari artikel sehingga maksimum 246 kolom diterbitkan. Jika pelacakan kolom digunakan, tabel dasar dapat menyertakan maksimum 246 kolom.

[ @status = ] N'status'

Status artikel. @status adalah nvarchar(10), dengan default unsynced. Jika active, skrip pemrosesan awal untuk menerbitkan tabel dijalankan. Jika unsynced, skrip pemrosesan awal untuk menerbitkan tabel dijalankan pada saat berikutnya Agen Rekam Jepret berjalan.

[ @pre_creation_cmd = ] N'pre_creation_cmd'

Menentukan apa yang harus dilakukan sistem jika tabel ada di pelanggan saat menerapkan rekam jepret. @pre_creation_cmd adalah nvarchar(10), dan bisa menjadi salah satu nilai berikut.

Nilai Deskripsi
none Jika tabel sudah ada di Pelanggan, tidak ada tindakan yang diambil.
delete Mengeluarkan penghapusan berdasarkan klausa WHERE di filter subset.
drop (default) Menghilangkan tabel sebelum membuatnya kembali. Diperlukan untuk mendukung Pelanggan Ringkas SQL Server.
truncate Memotong tabel tujuan.

[ @creation_script = ] N'creation_script'

Jalur dan nama skrip skema artikel opsional yang digunakan untuk membuat artikel di database langganan. @creation_script adalah nvarchar(255), dengan default NULL.

Catatan

Skrip pembuatan tidak dijalankan pada Pelanggan Ringkas SQL Server.

[ @schema_option = ] schema_option

Bitmap dari opsi pembuatan skema untuk artikel tertentu. @schema_option adalah varbinary(8), dan bisa menjadi | (Bitwise ATAU) produk dari satu atau beberapa nilai ini.

Nilai Deskripsi
0x00 Menonaktifkan pembuatan skrip oleh Agen Rekam Jepret dan menggunakan skrip prakreasi skema yang disediakan yang ditentukan dalam @creation_script.
0x01 Menghasilkan pembuatan objek (CREATE TABLE, CREATE PROCEDURE, dan sebagainya). Ini adalah nilai default untuk artikel prosedur tersimpan.
0x10 Menghasilkan indeks berkluster yang sesuai. Bahkan jika opsi ini tidak diatur, indeks yang terkait dengan kunci utama dan UNIQUE batasan dihasilkan jika sudah ditentukan pada tabel yang diterbitkan.
0x20 Mengonversi jenis data yang ditentukan pengguna (UDT) ke jenis data dasar di Pelanggan. Opsi ini tidak dapat digunakan saat ada batasan CHECK atau DEFAULT pada kolom UDT, jika kolom UDT adalah bagian dari kunci utama, atau jika kolom komputasi mereferensikan kolom UDT.
0x40 Menghasilkan indeks nonclustered yang sesuai. Bahkan jika opsi ini tidak diatur, indeks yang terkait dengan kunci utama dan UNIQUE batasan dihasilkan jika sudah ditentukan pada tabel yang diterbitkan.
0x80 Mereplikasi PRIMARY KEY batasan. Indeks apa pun yang terkait dengan batasan juga direplikasi, bahkan jika opsi 0x10 dan 0x40 tidak diaktifkan.
0x100 Mereplikasi pemicu pengguna pada artikel tabel, jika ditentukan.
0x200 Mereplikasi FOREIGN KEY batasan. Jika tabel yang direferensikan bukan bagian dari publikasi, semua FOREIGN KEY batasan pada tabel yang diterbitkan tidak direplikasi.
0x400 Mereplikasi CHECK batasan.
0x800 Mereplikasi default.
0x1000 Mereplikasi kolatasi tingkat kolom.
0x2000 Mereplikasi properti yang diperluas yang terkait dengan objek sumber artikel yang diterbitkan.
0x4000 Mereplikasi UNIQUE batasan. Indeks apa pun yang terkait dengan batasan juga direplikasi, bahkan jika opsi 0x10 dan 0x40 tidak diaktifkan.
0x8000 Opsi ini tidak valid untuk Penerbit yang menjalankan SQL Server 2005 (9.x) dan versi yang lebih baru.
0x10000 Mereplikasi CHECK batasan NOT FOR REPLICATION sehingga batasan tidak diberlakukan selama sinkronisasi.
0x20000 Mereplikasi FOREIGN KEY batasan NOT FOR REPLICATION sehingga batasan tidak diberlakukan selama sinkronisasi.
0x40000 Mereplikasi grup file yang terkait dengan tabel atau indeks yang dipartisi.
0x80000 Mereplikasi skema partisi untuk tabel yang dipartisi.
0x100000 Mereplikasi skema partisi untuk indeks yang dipartisi.
0x200000 Mereplikasi statistik tabel.
0x400000 Mereplikasi Pengikatan default.
0x800000 Mereplikasi pengikatan aturan.
0x1000000 Mereplikasi indeks teks lengkap.
0x2000000 Koleksi skema XML yang terikat ke kolom xml tidak direplikasi.
0x4000000 Mereplikasi indeks pada kolom xml .
0x8000000 Membuat skema apa pun yang belum ada pada pelanggan.
0x10000000 Mengonversi kolom xml menjadi ntext pada Pelanggan.
0x20000000 Mengonversi jenis data objek besar (nvarchar(max), varchar(max), dan varbinary(max)) yang diperkenalkan di SQL Server 2005 (9.x) ke jenis data yang didukung pada SQL Server 2000 (8.x).
0x40000000 Mereplikasi izin.
0x80000000 Mencoba untuk menghilangkan dependensi ke objek apa pun yang bukan bagian dari publikasi.
0x100000000 Gunakan opsi ini untuk mereplikasi FILESTREAM atribut jika ditentukan pada kolom varbinary(maks ). Jangan tentukan opsi ini jika Anda mereplikasi tabel ke Pelanggan SQL Server 2005 (9.x). Mereplikasi tabel yang memiliki kolom FILESTREAM ke Pelanggan SQL Server 2000 (8.x) tidak didukung, terlepas dari bagaimana opsi skema ini diatur. Lihat opsi 0x800000000terkait .
0x200000000 Mengonversi jenis data tanggal dan waktu (tanggal, waktu, datetimeoffset, dan datetime2) yang diperkenalkan di SQL Server 2008 (10.0.x) ke jenis data yang didukung pada versi SQL Server sebelumnya.
0x400000000 Mereplikasi opsi kompresi untuk data dan indeks. Untuk informasi selengkapnya, lihat Pemadatan data.
0x800000000 Atur opsi ini untuk menyimpan data FILESTREAM pada grup filenya sendiri di Pelanggan. Jika opsi ini tidak diatur, data FILESTREAM disimpan di grup file default. Replikasi tidak membuat grup file; oleh karena itu, jika Anda mengatur opsi ini, Anda harus membuat grup file sebelum menerapkan rekam jepret di Pelanggan. Untuk informasi selengkapnya tentang cara membuat objek sebelum Anda menerapkan rekam jepret, lihat Menjalankan Skrip Sebelum dan Sesudah Rekam Jepret Diterapkan.

Lihat opsi 0x100000000terkait .
0x1000000000 Mengonversi jenis yang ditentukan pengguna (UDT) common language runtime (CLR) menjadi varbinary(max) sehingga kolom jenis UDT dapat direplikasi ke Pelanggan yang menjalankan SQL Server 2005 (9.x).
0x2000000000 Mengonversi tipe data hierarkis ke varbinary(maks) sehingga kolom jenis hierarkiid dapat direplikasi ke Pelanggan yang menjalankan SQL Server 2005 (9.x). Untuk informasi selengkapnya tentang cara menggunakan kolom hierarkiid dalam tabel yang direplikasi, lihat referensi metode jenis data hierarki.
0x4000000000 Mereplikasi indeks yang difilter pada tabel. Untuk informasi selengkapnya tentang indeks yang difilter, lihat Membuat indeks yang difilter.
0x8000000000 Mengonversi jenis data geografi dan geometri menjadi varbinary(max) sehingga kolom jenis ini dapat direplikasi ke Pelanggan yang menjalankan SQL Server 2005 (9.x).
0x10000000000 Mereplikasi indeks pada kolom jenis geografi dan geometri.

Jika nilai ini adalah NULL, sistem secara otomatis membuat opsi skema yang valid untuk artikel. Tabel Opsi skema default memperlihatkan nilai yang dipilih berdasarkan jenis artikel. Selain itu, tidak semua nilai @schema_option valid untuk setiap jenis replikasi dan jenis artikel. Tabel Opsi skema valid memperlihatkan opsi yang dapat ditentukan untuk jenis artikel tertentu.

Catatan

Parameter @schema_option hanya memengaruhi opsi replikasi untuk rekam jepret awal. Setelah skema awal dihasilkan oleh Agen Rekam Jepret dan diterapkan di Pelanggan, replikasi perubahan skema publikasi pada Pelanggan terjadi berdasarkan aturan replikasi perubahan skema dan pengaturan parameter @replicate_ddl yang ditentukan dalam sp_addmergepublication. Untuk informasi selengkapnya, lihat Membuat Perubahan Skema pada Database Publikasi.

[ @subset_filterclause = ] N'subset_filterclause'

Klausa WHERE yang menentukan pemfilteran horizontal artikel tabel tanpa disertakan kata WHERE. @subset_filterclause adalah nvarchar(1000), dengan default string kosong.

Penting

Untuk alasan performa, sebaiknya Anda tidak menerapkan fungsi ke nama kolom dalam klausa filter baris berparameter, seperti LEFT([MyColumn]) = SUSER_SNAME(). Jika Anda menggunakan HOST_NAME dalam klausa filter dan mengambil alih HOST_NAME nilai, Anda mungkin harus mengonversi jenis data dengan menggunakan CONVERT. Untuk informasi selengkapnya tentang praktik terbaik untuk kasus ini, lihat bagian "Mengganti nilai HOST_NAME() di Filter Berparameter - Filter Baris Berparameter.

[ @article_resolver = ] N'article_resolver'

Pemecah masalah berbasis COM yang digunakan untuk mengatasi konflik pada artikel tabel atau rakitan .NET Framework yang dipanggil untuk menjalankan logika bisnis kustom pada artikel tabel. @article_resolver adalah nvarchar(255), dengan default NULL. Nilai yang tersedia untuk parameter ini tercantum di Pemecah Masalah Kustom Microsoft. Jika nilai yang disediakan bukan salah satu pemecah masalah Microsoft, SQL Server menggunakan pemecah masalah yang ditentukan alih-alih penyelesai yang disediakan sistem. Gunakan sp_enumcustomresolvers untuk menghitung daftar pemecah masalah kustom yang tersedia. Untuk informasi selengkapnya, lihat Menjalankan Logika Bisnis Selama Sinkronisasi Penggabungan dan Replikasi Penggabungan Tingkat Lanjut - Deteksi dan Resolusi Konflik.

[ @resolver_info = ] N'resolver_info'

Digunakan untuk menentukan informasi tambahan yang diperlukan oleh penyelesai kustom. Beberapa Pemecah Masalah Microsoft memerlukan kolom yang disediakan sebagai input ke pemecah masalah. @resolver_info adalah nvarchar(517), dengan default NULL. Untuk informasi selengkapnya, lihat Konflik Replikasi Penggabungan Tingkat Lanjut - Pemecah Masalah Berbasis COM.

[ @source_owner = ] N'source_owner'

Nama pemilik @source_object. @source_owner adalah sysname, dengan default NULL. Jika NULL, pengguna saat ini diasumsikan sebagai pemilik.

[ @destination_owner = ] N'destination_owner'

Pemilik objek dalam database langganan, jika tidak dbo. @destination_owner adalah sysname, dengan default NULL. Jika NULL, dbo diasumsikan sebagai pemilik.

[ @vertical_partition = ] N'vertical_partition'

Mengaktifkan dan menonaktifkan pemfilteran kolom pada artikel tabel. @vertical_partition adalah nvarchar(5), dengan default false.

  • false menunjukkan tidak ada pemfilteran vertikal dan menerbitkan semua kolom.

  • false menghapus semua kolom kecuali kunci dan ROWGUID kolom utama yang dinyatakan. Kolom ditambahkan dengan menggunakan sp_mergearticlecolumn.

[ @auto_identity_range = ] N'auto_identity_range'

Mengaktifkan dan menonaktifkan penanganan rentang identitas otomatis untuk artikel tabel ini pada publikasi pada saat dibuat. @auto_identity_range adalah nvarchar(5), dengan default NULL. false mengaktifkan penanganan rentang identitas otomatis, sambil false menonaktifkannya.

Catatan

Parameter ini tidak digunakan lagi dan dipertahankan untuk kompatibilitas skrip mundur. Anda harus menggunakan @identityrangemanagementoption untuk menentukan opsi manajemen rentang identitas. Untuk informasi selengkapnya, lihat Mereplikasi Kolom Identitas.

[ @pub_identity_range = ] pub_identity_range

Mengontrol ukuran rentang identitas yang dialokasikan untuk Pelanggan dengan langganan server saat manajemen rentang identitas otomatis digunakan. Rentang identitas ini dicadangkan untuk pelanggan penerbitan ulang untuk dialokasikan ke Pelanggannya sendiri. @pub_identity_range besar, dengan default NULL. Anda harus menentukan parameter ini jika @identityrangemanagementoption adalah auto atau jika @auto_identity_range adalah false.

[ @identity_range = ] identity_range

Mengontrol ukuran rentang identitas yang dialokasikan baik ke Penerbit maupun ke Pelanggan saat manajemen rentang identitas otomatis digunakan. @identity_range besar, dengan default NULL. Anda harus menentukan parameter ini jika @identityrangemanagementoption adalah auto atau jika @auto_identity_range adalah false.

Catatan

@identity_range mengontrol ukuran rentang identitas saat menerbitkan ulang Pelanggan menggunakan versi SQL Server sebelumnya.

[ @threshold = ] ambang batas

Nilai persentase yang mengontrol saat Agen Penggabungan menetapkan rentang identitas baru. Ketika persentase nilai yang ditentukan dalam @threshold digunakan, Agen Penggabungan membuat rentang identitas baru. @threshold int, dengan default NULL. Anda harus menentukan parameter ini jika @identityrangemanagementoption adalah auto atau jika @auto_identity_range adalah false.

[ @verify_resolver_signature = ] verify_resolver_signature

Menentukan apakah tanda tangan digital diverifikasi sebelum menggunakan pemecah masalah dalam replikasi penggabungan. @verify_resolver_signature int, dengan default 1.

  • 0 menentukan bahwa tanda tangan tidak diverifikasi.

  • 1 menentukan bahwa tanda tangan diverifikasi untuk melihat apakah tanda tangan tersebut berasal dari sumber tepercaya.

[ @destination_object = ] N'destination_object'

Nama objek dalam database langganan. @destination_object adalah sysname, dengan nilai default apa yang ada di @source_object. Parameter ini hanya dapat ditentukan jika artikel tersebut adalah artikel khusus skema, seperti prosedur tersimpan, tampilan, dan UDF. Jika artikel yang ditentukan adalah artikel tabel, nilai dalam @source_object mengambil alih nilai dalam @destination_object.

[ @allow_interactive_resolver = ] N'allow_interactive_resolver'

Mengaktifkan atau menonaktifkan penggunaan Interactive Resolver pada artikel. @allow_interactive_resolver adalah nvarchar(5), dengan default false. false mengaktifkan penggunaan Interactive Resolver pada artikel; false menonaktifkannya.

Catatan

Pemecah Masalah Interaktif tidak didukung oleh Pelanggan Ringkas SQL Server.

[ @fast_multicol_updateproc = ] N'fast_multicol_updateproc'

Parameter ini tidak digunakan lagi dan dipertahankan untuk kompatibilitas skrip mundur.

[ @check_permissions = ] check_permissions

Bitmap izin tingkat tabel yang diverifikasi saat Agen Penggabungan menerapkan perubahan pada Publisher. Jika akun masuk/pengguna Publisher yang digunakan oleh proses penggabungan tidak memiliki izin tabel yang benar, perubahan yang tidak valid dicatat sebagai konflik. @check_permissions int, dan bisa menjadi | (Bitwise ATAU) produk dari satu atau beberapa nilai berikut.

Nilai Deskripsi
0x00 (default) Izin tidak dicentang.
0x10 Memeriksa izin di Publisher sebelum operasi sisipan yang dibuat di Pelanggan dapat diunggah.
0x20 Memeriksa izin di Publisher sebelum operasi pembaruan yang dibuat di Pelanggan dapat diunggah.
0x40 Memeriksa izin di Publisher sebelum operasi penghapusan yang dibuat di Pelanggan dapat diunggah.

[ @force_invalidate_snapshot = ] force_invalidate_snapshot

Mengakui bahwa tindakan yang diambil oleh prosedur tersimpan ini mungkin membatalkan rekam jepret yang ada. @force_invalidate_snapshot adalah bit, dengan default 0.

  • 0 menentukan bahwa menambahkan artikel tidak menyebabkan rekam jepret tidak valid. Jika prosedur tersimpan mendeteksi bahwa perubahan memang memerlukan rekam jepret baru, kesalahan terjadi dan tidak ada perubahan yang dilakukan.

  • 1 menentukan bahwa menambahkan artikel dapat menyebabkan rekam jepret tidak valid, dan jika ada langganan yang memerlukan rekam jepret baru, memberikan izin agar rekam jepret yang ada ditandai sebagai usang dan rekam jepret baru yang dihasilkan. @force_invalidate_snapshot diatur ke 1 saat menambahkan artikel ke publikasi dengan rekam jepret yang sudah ada.

[ @published_in_tran_pub = ] N'published_in_tran_pub'

Menunjukkan bahwa artikel dalam publikasi gabungan juga diterbitkan dalam publikasi transaksi. @published_in_tran_pub adalah nvarchar(5), dengan default false. false menentukan bahwa artikel juga diterbitkan dalam publikasi transaksi.

[ @force_reinit_subscription = ] force_reinit_subscription

Mengakui bahwa tindakan yang diambil oleh prosedur tersimpan ini mungkin mengharuskan langganan yang ada untuk diinisialisasi ulang. @force_reinit_subscription adalah bit, dengan default 0.

  • 0 menentukan bahwa menambahkan artikel tidak menyebabkan langganan diinisialisasi ulang. Jika prosedur tersimpan mendeteksi bahwa perubahan mengharuskan langganan yang ada diinisialisasi ulang, kesalahan terjadi dan tidak ada perubahan yang dilakukan.

  • 1 berarti bahwa perubahan pada artikel penggabungan menyebabkan langganan yang ada diinisialisasi ulang, dan memberikan izin untuk reinitialisasi langganan terjadi. @force_reinit_subscription diatur ke 1 saat @subset_filterclause menentukan filter baris berparameter.

[ @logical_record_level_conflict_detection = ] N'logical_record_level_conflict_detection'

Menentukan tingkat deteksi konflik untuk artikel yang merupakan anggota catatan logis. @logical_record_level_conflict_detection adalah nvarchar(5), dengan default false.

  • false menentukan bahwa konflik terdeteksi jika perubahan dilakukan di mana saja dalam catatan logis.

  • false menentukan bahwa deteksi konflik default digunakan sebagaimana ditentukan oleh @column_tracking. Untuk informasi selengkapnya, lihat Perubahan Grup pada Baris Terkait dengan Rekaman Logis.

Catatan

Karena catatan logis tidak didukung oleh Pelanggan Ringkas SQL Server, Anda harus menentukan nilai false untuk @logical_record_level_conflict_detection untuk mendukung Pelanggan ini.

[ @logical_record_level_conflict_resolution = ] N'logical_record_level_conflict_resolution'

Menentukan tingkat resolusi konflik untuk artikel yang merupakan anggota catatan logis. @logical_record_level_conflict_resolution adalah nvarchar(5), dengan default false.

  • false menentukan bahwa seluruh catatan logis yang menang menimpa catatan logis yang kalah.

  • false menentukan bahwa baris yang menang tidak dibatasi ke rekaman logis.

Jika @logical_record_level_conflict_detection adalah false, maka @logical_record_level_conflict_resolution juga harus diatur ke false. Untuk informasi selengkapnya, lihat Perubahan Grup pada Baris Terkait dengan Rekaman Logis.

Catatan

Karena catatan logis tidak didukung oleh Pelanggan Ringkas SQL Server, Anda harus menentukan nilai false untuk @logical_record_level_conflict_resolution untuk mendukung Pelanggan ini.

[ @partition_options = ] partition_options

Menentukan cara data dalam artikel dipartisi, yang memungkinkan pengoptimalan performa ketika semua baris hanya termasuk dalam satu partisi atau hanya dalam satu langganan. @partition_options kecil, dan bisa menjadi salah satu nilai berikut.

Nilai Deskripsi
0 (default) Pemfilteran untuk artikel bersifat statis atau tidak menghasilkan subset data unik untuk setiap partisi, yaitu partisi "tumpang tindih".
1 Partisi tumpang tindih, dan pembaruan bahasa manipulasi data (DML) yang dibuat di Pelanggan tidak dapat mengubah partisi tempat baris berada.
2 Pemfilteran untuk artikel menghasilkan partisi yang tidak tumpang tindih, tetapi beberapa Pelanggan dapat menerima partisi yang sama.
3 Pemfilteran untuk artikel menghasilkan partisi yang tidak tumpang tindih yang unik untuk setiap langganan.

Catatan

Jika tabel sumber untuk artikel sudah diterbitkan di publikasi lain, maka nilai @partition_options harus sama untuk kedua artikel.

[ @processing_order = ] processing_order

Menunjukkan urutan pemrosesan artikel dalam publikasi gabungan. @processing_order int, dengan default 0. 0 menentukan bahwa artikel tidak diurutkan, dan nilai lain mewakili nilai ordinal urutan pemrosesan untuk artikel ini. Artikel diproses secara berurutan dari nilai terendah hingga tertinggi. Jika dua artikel memiliki nilai yang sama, urutan pemrosesan ditentukan oleh urutan nama panggilan artikel dalam tabel sistem sysmergearticles . Untuk informasi selengkapnya, lihat Menentukan properti Replikasi Penggabungan.

[ @subscriber_upload_options = ] subscriber_upload_options

Menentukan pembatasan pembaruan yang dibuat di Pelanggan dengan langganan klien. Untuk informasi selengkapnya, lihat Mengoptimalkan Performa Replikasi Penggabungan dengan Artikel Unduh-Saja. @subscriber_upload_options kecil, dan bisa menjadi salah satu nilai berikut.

Nilai Deskripsi
0 (default) Tidak ada batasan. Perubahan yang dilakukan di Pelanggan diunggah ke Penerbit.
1 Perubahan diizinkan di Pelanggan, tetapi tidak diunggah ke Penerbit.
2 Perubahan tidak diizinkan di Pelanggan.

Mengubah @subscriber_upload_options mengharuskan langganan diinisialisasi ulang dengan memanggil sp_reinitmergepullsubscription (Transact-SQL).

Catatan

Jika tabel sumber untuk artikel sudah diterbitkan di publikasi lain, nilai @subscriber_upload_options harus sama untuk kedua artikel.

[ @identityrangemanagementoption = ] N'identityrangemanagementoption'

Menentukan bagaimana manajemen rentang identitas ditangani untuk artikel. @identityrangemanagementoption adalah nvarchar(10), dan bisa menjadi salah satu nilai berikut.

Nilai Deskripsi
none Menonaktifkan manajemen rentang identitas.
manual Menandai kolom identitas menggunakan NOT FOR REPLICATION untuk mengaktifkan penanganan rentang identitas manual.
auto Menentukan manajemen otomatis rentang identitas.
NULL (default) Default ke none saat nilai @auto_identity_range bukan true.

Untuk kompatibilitas mundur, ketika nilai @identityrangemanagementoption adalah NULL, nilai @auto_identity_range dicentang. Namun, ketika nilai @identityrangemanagementoption tidak NULL, maka nilai @auto_identity_range diabaikan. Untuk informasi selengkapnya, lihat Mereplikasi Kolom Identitas.

[ @delete_tracking = ] N'delete_tracking'

Menunjukkan apakah penghapusan direplikasi. @delete_tracking adalah nvarchar(5), dengan default true. false menunjukkan bahwa penghapusan tidak direplikasi, dan true menunjukkan bahwa penghapusan direplikasi, yang merupakan perilaku biasa untuk replikasi penggabungan. Ketika @delete_tracking diatur ke false, baris yang dihapus di Pelanggan harus dihapus secara manual di Penerbit, dan baris yang dihapus di Penerbit harus dihapus secara manual di Pelanggan.

Penting

Mengatur @delete_tracking untuk false menghasilkan non-konvergensi. Jika tabel sumber untuk artikel sudah diterbitkan di publikasi lain, maka nilai @delete_tracking harus sama untuk kedua artikel.

Catatan

@delete_tracking opsi tidak dapat diatur menggunakan Wizard Publikasi Baru atau kotak dialog Properti Publikasi.

[ @compensate_for_errors = ] N'compensate_for_errors'

Menunjukkan apakah tindakan kompensasi diambil ketika kesalahan ditemui selama sinkronisasi. @compensate_for_errors adalah nvarchar(5), dengan default false. Ketika diatur ke true, perubahan yang tidak dapat diterapkan di Pelanggan atau Penerbit selama sinkronisasi selalu menyebabkan kompensasi tindakan untuk membatalkan perubahan; namun, satu Pelanggan yang salah dikonfigurasi yang menghasilkan kesalahan dapat menyebabkan perubahan pada Pelanggan dan Penerbit lain dibatalkan. false menonaktifkan tindakan kompensasi ini, namun, kesalahan masih dicatat sebagai kompensasi dan penggabungan berikutnya terus mencoba menerapkan perubahan hingga berhasil.

Penting

Meskipun data dalam baris yang terpengaruh mungkin tampak tidak konvergensi, segera setelah Anda mengatasi kesalahan apa pun, perubahan dapat diterapkan dan data akan bertemu. Jika tabel sumber untuk artikel sudah diterbitkan di publikasi lain, maka nilai @compensate_for_errors harus sama untuk kedua artikel.

[ @stream_blob_columns = ] N'stream_blob_columns'

Menentukan bahwa pengoptimalan aliran data digunakan saat mereplikasi kolom objek besar biner. @stream_blob_columns adalah nvarchar(5), dengan default false. true berarti bahwa pengoptimalan akan dicoba. @stream_blob_columns diatur ke true ketika FILESTREAM diaktifkan. Ini memungkinkan replikasi data FILESTREAM untuk berkinerja optimal dan mengurangi pemanfaatan memori. Untuk memaksa artikel tabel FILESTREAM agar tidak menggunakan streaming blob, gunakan sp_changemergearticle untuk mengatur @stream_blob_columns ke false.

Penting

Mengaktifkan pengoptimalan memori ini dapat mengurangi performa Agen Penggabungan selama sinkronisasi. Opsi ini hanya boleh digunakan saat mereplikasi kolom yang berisi megabyte data.

Catatan

Fungsionalitas replikasi penggabungan tertentu, seperti rekaman logis, masih dapat mencegah pengoptimalan aliran digunakan saat mereplikasi objek besar biner bahkan dengan @stream_blob_columns diatur ke true.

Mengembalikan nilai kode

0 (berhasil) atau 1 (kegagalan).

Keterangan

sp_addmergearticle digunakan dalam replikasi penggabungan.

Saat Anda menerbitkan objek, definisinya disalin ke Pelanggan. Jika Anda menerbitkan objek database yang bergantung pada satu atau beberapa objek lainnya, Anda harus menerbitkan semua objek yang direferensikan. Misalnya, jika Anda menerbitkan tampilan yang bergantung pada tabel, Anda juga harus menerbitkan tabel.

Jika Anda menentukan nilai 3 untuk @partition_options:

  • Hanya ada satu langganan untuk setiap partisi data dalam artikel tersebut. Jika langganan kedua dibuat di mana kriteria pemfilteran langganan baru diselesaikan ke partisi yang sama dengan langganan yang ada, langganan yang ada akan dihilangkan.

  • Metadata dibersihkan setiap kali Agen Penggabungan berjalan dan rekam jepret yang dipartisi kedaluwarsa lebih cepat. Saat menggunakan opsi ini, Anda harus mempertimbangkan untuk mengaktifkan rekam jepret partisi yang diminta pelanggan. Untuk informasi selengkapnya, lihat Membuat Rekam Jepret untuk Publikasi Gabungan dengan Filter Berparameter.

Jika Anda menambahkan artikel dengan filter horizontal statis, menggunakan @subset_filterclause, ke publikasi yang sudah ada dengan artikel yang memiliki filter berparameter, langganan harus diinisialisasi ulang.

Saat Anda menentukan @processing_order, sebaiknya tinggalkan celah di antara nilai urutan artikel, yang memudahkan untuk mengatur nilai baru di masa mendatang. Misalnya, jika Anda memiliki tiga artikel, , , dan , atur @processing_order ke 10, , 20dan 30, bukan 1, 2, dan 3.Article3Article2Article1 Untuk informasi selengkapnya, lihat Menentukan properti Replikasi Penggabungan.

Tabel opsi skema default

Tabel ini menjelaskan nilai default yang ditetapkan prosedur tersimpan, jika NULL nilai ditentukan untuk @schema_option, yang bergantung pada jenis artikel.

Jenis artikel Nilai opsi skema
func schema only 0x01
indexed view schema only 0x01
proc schema only 0x01
table 0x0C034FD1 - SQL Server 2005 (9.x) dan publikasi yang kompatibel dengan yang lebih baru dengan rekam jepret mode asli.

0x08034FF1 - SQL Server 2005 (9.x) dan publikasi yang kompatibel dengan yang lebih baru dengan rekam jepret mode karakter.
view schema only 0x01

Catatan

Jika publikasi mendukung versi SQL Server yang lebih lama, opsi skema default untuk table adalah 0x30034FF1.

Tabel opsi skema yang valid

Tabel berikut ini menjelaskan nilai yang diizinkan @schema_option bergantung pada jenis artikel.

Jenis artikel Nilai opsi skema
func schema only 0x01 dan 0x2000
indexed view schema only 0x01, , 0x0400x0100, 0x2000, 0x40000, , 0x1000000dan0x200000
proc schema only 0x01 dan 0x2000
table Semua opsi.
view schema only 0x01, , 0x0400x0100, 0x2000, 0x40000, , 0x1000000dan0x200000

Contoh

DECLARE @publication AS sysname;
DECLARE @table1 AS sysname;
DECLARE @table2 AS sysname;
DECLARE @table3 AS sysname;
DECLARE @salesschema AS sysname;
DECLARE @hrschema AS sysname;
DECLARE @filterclause AS nvarchar(1000);
SET @publication = N'AdvWorksSalesOrdersMerge'; 
SET @table1 = N'Employee'; 
SET @table2 = N'SalesOrderHeader'; 
SET @table3 = N'SalesOrderDetail'; 
SET @salesschema = N'Sales';
SET @hrschema = N'HumanResources';
SET @filterclause = N'Employee.LoginID = HOST_NAME()';

-- Add a filtered article for the Employee table.
EXEC sp_addmergearticle 
  @publication = @publication, 
  @article = @table1, 
  @source_object = @table1, 
  @type = N'table', 
  @source_owner = @hrschema,
  @schema_option = 0x0004CF1,
  @description = N'article for the Employee table',
  @subset_filterclause = @filterclause;

-- Add an article for the SalesOrderHeader table that is filtered
-- based on Employee and horizontally filtered.
EXEC sp_addmergearticle 
  @publication = @publication, 
  @article = @table2, 
  @source_object = @table2, 
  @type = N'table', 
  @source_owner = @salesschema, 
  @vertical_partition = N'true',
  @schema_option = 0x0034EF1,
  @description = N'article for the SalesOrderDetail table';

-- Add an article for the SalesOrderDetail table that is filtered
-- based on SaledOrderHeader.
EXEC sp_addmergearticle 
  @publication = @publication, 
  @article = @table3, 
  @source_object = @table3, 
  @source_owner = @salesschema,
  @description = 'article for the SalesOrderHeader table', 
  @identityrangemanagementoption = N'auto', 
  @pub_identity_range = 100000, 
  @identity_range = 100, 
  @threshold = 80,
  @schema_option = 0x0004EF1;

-- Add all columns to the SalesOrderHeader article.
EXEC sp_mergearticlecolumn 
  @publication = @publication, 
  @article = @table2, 
  @force_invalidate_snapshot = 1, 
  @force_reinit_subscription = 1;

-- Remove the credit card Approval Code column.
EXEC sp_mergearticlecolumn 
  @publication = @publication, 
  @article = @table2, 
  @column = N'CreditCardApprovalCode', 
  @operation = N'drop', 
  @force_invalidate_snapshot = 1, 
  @force_reinit_subscription = 1;

-- Add a merge join filter between Employee and SalesOrderHeader.
EXEC sp_addmergefilter 
  @publication = @publication, 
  @article = @table2, 
  @filtername = N'SalesOrderHeader_Employee', 
  @join_articlename = @table1, 
  @join_filterclause = N'Employee.BusinessEntityID = SalesOrderHeader.SalesPersonID', 
  @join_unique_key = 1, 
  @filter_type = 1, 
  @force_invalidate_snapshot = 1, 
  @force_reinit_subscription = 1;

-- Add a merge join filter between SalesOrderHeader and SalesOrderDetail.
EXEC sp_addmergefilter 
  @publication = @publication, 
  @article = @table3, 
  @filtername = N'SalesOrderDetail_SalesOrderHeader', 
  @join_articlename = @table2, 
  @join_filterclause = N'SalesOrderHeader.SalesOrderID = SalesOrderDetail.SalesOrderID', 
  @join_unique_key = 1, 
  @filter_type = 1, 
  @force_invalidate_snapshot = 1, 
  @force_reinit_subscription = 1;
GO

Izin

Memerlukan keanggotaan dalam peran server tetap sysadmin atau peran database tetap db_owner .