Bagikan melalui


sp_addarticle (T-SQL)

Berlaku untuk: SQL Server Azure SQL Managed Instance

Membuat artikel dan menambahkannya ke publikasi. Prosedur tersimpan ini dijalankan di Publisher pada database publikasi.

Konvensi sintaks transact-SQL

Sintaks

sp_addarticle
    [ @publication = ] N'publication'
    , [ @article = ] N'article'
    [ , [ @source_table = ] N'source_table' ]
    [ , [ @destination_table = ] N'destination_table' ]
    [ , [ @vertical_partition = ] N'vertical_partition' ]
    [ , [ @type = ] N'type' ]
    [ , [ @filter = ] N'filter' ]
    [ , [ @sync_object = ] N'sync_object' ]
    [ , [ @ins_cmd = ] N'ins_cmd' ]
    [ , [ @del_cmd = ] N'del_cmd' ]
    [ , [ @upd_cmd = ] N'upd_cmd' ]
    [ , [ @creation_script = ] N'creation_script' ]
    [ , [ @description = ] N'description' ]
    [ , [ @pre_creation_cmd = ] N'pre_creation_cmd' ]
    [ , [ @filter_clause = ] N'filter_clause' ]
    [ , [ @schema_option = ] schema_option ]
    [ , [ @destination_owner = ] N'destination_owner' ]
    [ , [ @status = ] status ]
    [ , [ @source_owner = ] N'source_owner' ]
    [ , [ @sync_object_owner = ] N'sync_object_owner' ]
    [ , [ @filter_owner = ] N'filter_owner' ]
    [ , [ @source_object = ] N'source_object' ]
    [ , [ @artid = ] artid OUTPUT ]
    [ , [ @auto_identity_range = ] N'auto_identity_range' ]
    [ , [ @pub_identity_range = ] pub_identity_range ]
    [ , [ @identity_range = ] identity_range ]
    [ , [ @threshold = ] threshold ]
    [ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
    [ , [ @use_default_datatypes = ] use_default_datatypes ]
    [ , [ @identityrangemanagementoption = ] N'identityrangemanagementoption' ]
    [ , [ @publisher = ] N'publisher' ]
    [ , [ @fire_triggers_on_snapshot = ] N'fire_triggers_on_snapshot' ]
[ ; ]

Argumen

[ @publication = ] N'publikasi'

Nama publikasi yang berisi artikel. Nama harus unik dalam database. @publication adalah sysname, tanpa default.

[ @article = ] N'article'

Nama artikel. Nama harus unik dalam publikasi. @article adalah sysname, tanpa default.

[ @source_table = ] N'source_table'

Parameter ini tidak digunakan lagi; gunakan @source_object sebagai gantinya. @source_table adalah nvarchar(386), dengan default NULL. @source_table tidak didukung untuk Penerbit Oracle.

[ @destination_table = ] N'destination_table'

Nama tabel tujuan (langganan), jika berbeda dari @source_table atau prosedur tersimpan. @destination_table adalah sysname, dengan default NULL. Jika diatur ke NULL, ini berarti bahwa @source_table sama dengan @destination_table.

[ @vertical_partition = ] N'vertical_partition'

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

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

  • true menghapus semua kolom kecuali kunci primer yang dinyatakan, kolom yang dapat diubah ke null tanpa kolom kunci default, dan unik. Kolom ditambahkan menggunakan sp_articlecolumn.

[ @type = ] N'type'

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

Nilai Deskripsi
aggregate schema only Fungsi agregat dengan skema saja.
func schema only Fungsi hanya dengan skema.
indexed view logbased Artikel tampilan terindeks berbasis log. Tidak didukung untuk Oracle Publishers. Untuk jenis artikel ini, tabel dasar tidak perlu diterbitkan secara terpisah.
indexed view logbased manualboth Artikel tampilan terindeks berbasis log dengan filter manual dan tampilan manual. Opsi ini mengharuskan Anda menentukan parameter @sync_object dan @filter . Untuk jenis artikel ini, tabel dasar tidak perlu diterbitkan secara terpisah. Tidak didukung untuk Oracle Publishers.
indexed view logbased manualfilter Artikel tampilan terindeks berbasis log dengan filter manual. Opsi ini mengharuskan Anda menentukan parameter @sync_object dan @filter . Untuk jenis artikel ini, tabel dasar tidak perlu diterbitkan secara terpisah. Tidak didukung untuk Oracle Publishers.
indexed view logbased manualview Artikel tampilan terindeks berbasis log dengan tampilan manual. Opsi ini mengharuskan Anda menentukan parameter @sync_object . Untuk jenis artikel ini, tabel dasar tidak perlu diterbitkan secara terpisah. Tidak didukung untuk Oracle Publishers.
indexed view schema only Tampilan terindeks dengan skema saja. Untuk jenis artikel ini, tabel dasar juga harus diterbitkan.
logbased (default) Artikel berbasis log.
logbased manualboth Artikel berbasis log dengan filter manual dan tampilan manual. Opsi ini mengharuskan Anda menentukan parameter @sync_object dan @filter . Tidak didukung untuk Oracle Publishers.
logbased manualfilter Artikel berbasis log dengan filter manual. Opsi ini mengharuskan Anda menentukan parameter @sync_object dan @filter . Tidak didukung untuk Oracle Publishers.
logbased manualview Artikel berbasis log dengan tampilan manual. Opsi ini mengharuskan Anda menentukan parameter @sync_object . Tidak didukung untuk Oracle Publishers.
proc exec Mereplikasi eksekusi prosedur tersimpan kepada semua Pelanggan artikel. Tidak didukung untuk Oracle Publishers. Kami menyarankan agar Anda menggunakan opsi proc exec yang dapat diserialisasikan alih-alih proc exec. Untuk informasi selengkapnya, lihat bagian "Jenis Eksekusi Prosedur Tersimpan" dalam Menerbitkan Eksekusi Prosedur Tersimpan dalam Replikasi Transaksional. Tidak tersedia saat mengubah tangkapan data diaktifkan.
proc schema only Prosedur dengan skema saja. Tidak didukung untuk Oracle Publishers.
serializable proc exec Mereplikasi eksekusi prosedur tersimpan hanya jika dijalankan dalam konteks transaksi yang dapat diserialisasikan. Tidak didukung untuk Oracle Publishers.

Prosedur ini juga harus dijalankan di dalam transaksi eksplisit agar eksekusi prosedur direplikasi.
view schema only Lihat dengan skema saja. Tidak didukung untuk Oracle Publishers. Saat menggunakan opsi ini, Anda juga harus menerbitkan tabel dasar.

[ @filter = ] N'filter'

Prosedur tersimpan (dibuat dengan FOR REPLICATION) digunakan untuk memfilter tabel secara horizontal. @filter adalah nvarchar(386), dengan default NULL. Anda harus menjalankan sp_articleview dan sp_articlefilter secara manual untuk membuat tampilan dan memfilter prosedur tersimpan. Jika tidak NULL, prosedur filter tidak dibuat (mengasumsikan prosedur tersimpan dibuat secara manual).

[ @sync_object = ] N'sync_object'

Nama tabel atau tampilan yang digunakan untuk menghasilkan file data yang digunakan untuk mewakili rekam jepret untuk artikel ini. @sync_object adalah nvarchar(386), dengan default NULL. Jika NULL, sp_articleview dipanggil untuk secara otomatis membuat tampilan yang digunakan untuk menghasilkan file output. Ini terjadi setelah menambahkan kolom apa pun dengan sp_articlecolumn. Jika tidak NULL, tampilan tidak dibuat (mengasumsikan tampilan dibuat secara manual).

[ @ins_cmd = ] N'ins_cmd'

Jenis perintah replikasi yang digunakan saat mereplikasi sisipan untuk artikel ini. @ins_cmd adalah nvarchar(255), dan bisa menjadi salah satu nilai berikut.

Nilai Deskripsi
NONE Tidak ada tindakan yang diambil.
CALL sp_MSins_<table> (default)

-atau-

CALL custom_stored_procedure_name
Memanggil prosedur tersimpan untuk dijalankan di Pelanggan. Untuk menggunakan metode replikasi ini, gunakan @schema_option untuk menentukan pembuatan otomatis prosedur tersimpan, atau buat prosedur tersimpan yang ditentukan dalam database tujuan setiap Pelanggan artikel. <custom_stored_procedure> adalah nama prosedur tersimpan yang dibuat pengguna. sp_MSins_<table> berisi nama tabel tujuan sebagai pengganti bagian _table parameter. Saat @destination_owner ditentukan, nama tabel tujuan telah ditentukan sebelumnya. Misalnya, untuk tabel yang ProductCategory dimiliki oleh Production skema di Pelanggan, parameternya adalah CALL sp_MSins_ProductionProductCategory. Untuk artikel dalam topologi replikasi peer-to-peer, <table> ditambahkan dengan nilai GUID. Menentukan <custom_stored_procedure> tidak didukung untuk memperbarui pelanggan.
SQL atau NULL Mereplikasi INSERT pernyataan. Pernyataan ini INSERT menyediakan nilai untuk semua kolom yang diterbitkan dalam artikel. Perintah ini direplikasi pada sisipan:

INSERT INTO <table name> VALUES (c1value, c2value, c3value, ..., cnvalue)

Untuk informasi selengkapnya, lihat Artikel Transaksional - Tentukan Bagaimana Perubahan Disebarluaskan.

[ @del_cmd = ] N'del_cmd'

Jenis perintah replikasi yang digunakan saat mereplikasi penghapusan untuk artikel ini. @del_cmd adalah nvarchar(255), dan bisa menjadi salah satu nilai berikut.

Nilai Deskripsi
NONE Tidak ada tindakan yang diambil.
CALLsp_MSdel_<table> (default)

-atau-

CALL <custom_stored_procedure_name>
Memanggil prosedur tersimpan untuk dijalankan di Pelanggan. Untuk menggunakan metode replikasi ini, gunakan @schema_option untuk menentukan pembuatan otomatis prosedur tersimpan, atau buat prosedur tersimpan yang ditentukan dalam database tujuan setiap Pelanggan artikel. <custom_stored_procedure> adalah nama prosedur tersimpan yang dibuat pengguna. sp_MSdel_<table> berisi nama tabel tujuan sebagai pengganti bagian _table parameter. Saat @destination_owner ditentukan, nama tabel tujuan telah ditentukan sebelumnya. Misalnya, untuk tabel yang ProductCategory dimiliki oleh Production skema di Pelanggan, parameternya adalah CALL sp_MSdel_ProductionProductCategory. Untuk artikel dalam topologi replikasi peer-to-peer, <table> ditambahkan dengan nilai GUID. Menentukan <custom_stored_procedure> tidak didukung untuk memperbarui pelanggan.
XCALL sp_MSdel_<table>

-atau-

XCALL <custom_stored_procedure_name>
Memanggil prosedur tersimpan yang mengambil XCALL parameter gaya. Untuk menggunakan metode replikasi ini, gunakan @schema_option untuk menentukan pembuatan otomatis prosedur tersimpan, atau buat prosedur tersimpan yang ditentukan dalam database tujuan setiap Pelanggan artikel. Menentukan prosedur tersimpan yang dibuat pengguna tidak diizinkan untuk memperbarui pelanggan.
SQL atau NULL Mereplikasi DELETE pernyataan. Pernyataan DELETE disediakan semua nilai kolom kunci utama. Perintah ini direplikasi pada penghapusan:

DELETE FROM <table name> WHERE pkc1 = pkc1value AND pkc2 = pkc2value AND pkcn = pkcnvalue

Untuk informasi selengkapnya, lihat Artikel Transaksional - Tentukan Bagaimana Perubahan Disebarluaskan.

[ @upd_cmd = ] N'upd_cmd'

Jenis perintah replikasi yang digunakan saat mereplikasi pembaruan untuk artikel ini. @upd_cmd adalah nvarchar(255), dan bisa menjadi salah satu nilai berikut.

Nilai Deskripsi
NONE Tidak ada tindakan yang diambil.
CALL sp_MSupd_<table>

-atau-

CALL <custom_stored_procedure_name>
Memanggil prosedur tersimpan untuk dijalankan di Pelanggan. Untuk menggunakan metode replikasi ini, gunakan @schema_option untuk menentukan pembuatan otomatis prosedur tersimpan, atau buat prosedur tersimpan yang ditentukan dalam database tujuan setiap Pelanggan artikel.
MCALL sp_MSupd_<table>

-atau-

MCALL <custom_stored_procedure_name>
Memanggil prosedur tersimpan yang mengambil MCALL parameter gaya. Untuk menggunakan metode replikasi ini, gunakan @schema_option untuk menentukan pembuatan otomatis prosedur tersimpan, atau buat prosedur tersimpan yang ditentukan dalam database tujuan setiap Pelanggan artikel. <custom_stored_procedure> adalah nama prosedur tersimpan yang dibuat pengguna. sp_MSupd_<table> berisi nama tabel tujuan sebagai pengganti <table> bagian parameter. Saat @destination_owner ditentukan, nama tabel tujuan telah ditentukan sebelumnya. Misalnya, untuk tabel yang ProductCategory dimiliki oleh Production skema di Pelanggan, parameternya adalah MCALL sp_MSupd_ProductionProductCategory. Untuk artikel dalam topologi replikasi peer-to-peer, <table> ditambahkan dengan nilai GUID. Menentukan prosedur tersimpan yang dibuat pengguna tidak diizinkan untuk memperbarui pelanggan.
SCALL sp_MSupd_<table> (default)

-atau-

SCALL <custom_stored_procedure_name>
Memanggil prosedur tersimpan yang mengambil SCALL parameter gaya. Untuk menggunakan metode replikasi ini, gunakan @schema_option untuk menentukan pembuatan otomatis prosedur tersimpan, atau buat prosedur tersimpan yang ditentukan dalam database tujuan setiap Pelanggan artikel. <custom_stored_procedure> adalah nama prosedur tersimpan yang dibuat pengguna. sp_MSupd_<table> berisi nama tabel tujuan sebagai pengganti bagian _table parameter. Saat @destination_owner ditentukan, nama tabel tujuan telah ditentukan sebelumnya. Misalnya, untuk tabel yang ProductCategory dimiliki oleh Production skema di Pelanggan, parameternya adalah SCALL sp_MSupd_ProductionProductCategory. Untuk artikel dalam topologi replikasi peer-to-peer, _table ditambahkan dengan nilai GUID. Menentukan prosedur tersimpan yang dibuat pengguna tidak diizinkan untuk memperbarui pelanggan.
XCALL sp_MSupd_<table>

-atau-

XCALL <custom_stored_procedure_name>
Memanggil prosedur tersimpan yang mengambil XCALL parameter gaya. Untuk menggunakan metode replikasi ini, gunakan @schema_option untuk menentukan pembuatan otomatis prosedur tersimpan, atau buat prosedur tersimpan yang ditentukan dalam database tujuan setiap Pelanggan artikel. Menentukan prosedur tersimpan yang dibuat pengguna tidak diizinkan untuk memperbarui pelanggan.
SQL atau NULL Mereplikasi UPDATE pernyataan. Pernyataan UPDATE disediakan pada semua nilai kolom dan nilai kolom kunci utama. Perintah ini direplikasi pada pembaruan:

UPDATE <table name> SET c1 = c1value, SET c2 = c2value, SET cn = cnvalue WHERE pkc1 = pkc1value AND pkc2 = pkc2value AND pkcn = pkcnvalue

Catatan

Sintaks untuk CALL, MCALL, SCALL, dan XCALL bervariasi jumlah data yang disebarkan ke pelanggan. CALL Sintaks meneruskan semua nilai untuk semua kolom yang disisipkan dan dihapus. SCALL Sintaks meneruskan nilai hanya untuk kolom yang terpengaruh. XCALL Sintaks meneruskan nilai untuk semua kolom, baik yang diubah atau tidak, termasuk nilai kolom sebelumnya. Untuk informasi selengkapnya, lihat Artikel Transaksional - Tentukan Bagaimana Perubahan Disebarluaskan.

[ @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.

[ @description = ] N'description'

Entri deskriptif untuk artikel. @description adalah nvarchar(255), dengan default NULL.

[ @pre_creation_cmd = ] N'pre_creation_cmd'

Menentukan apa yang harus dilakukan sistem jika mendeteksi objek yang ada dengan nama yang sama pada pelanggan saat menerapkan rekam jepret untuk artikel ini. @pre_creation_cmd adalah nvarchar(10), dan bisa menjadi salah satu nilai berikut.

Nilai Deskripsi
none Tidak menggunakan perintah.
delete Menghapus data dari tabel tujuan sebelum menerapkan rekam jepret. Saat artikel difilter secara horizontal, hanya data dalam kolom yang ditentukan oleh klausa filter yang dihapus. Tidak didukung untuk Penerbit Oracle saat filter horizontal ditentukan.
drop (default) Menghilangkan tabel tujuan.
truncate Memotong tabel tujuan. Tidak berlaku untuk Pelanggan ODBC atau OLE DB.

[ @filter_clause = ] N'filter_clause'

Klausa pembatasan (WHERE) yang menentukan filter horizontal. Saat memasukkan klausul pembatasan, hilangkan kata kunci WHERE. @filter_clause adalah nvarchar(max), dengan default NULL. Untuk informasi selengkapnya, lihat Memfilter Data yang Diterbitkan.

[ @schema_option = ] schema_option

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

Catatan

Jika nilai ini adalah NULL, sistem secara otomatis menghasilkan opsi skema yang valid untuk artikel tergantung pada properti artikel lainnya. Opsi Skema default memperlihatkan nilai yang akan dipilih berdasarkan kombinasi jenis artikel dan jenis replikasi.

Nilai Deskripsi
0x00 Menonaktifkan pembuatan skrip oleh Agen Rekam Jepret dan menggunakan @creation_script.
0x01 Menghasilkan skrip pembuatan objek (CREATE TABLE, CREATE PROCEDURE, dan sebagainya). Nilai ini adalah default untuk artikel prosedur tersimpan.
0x02 Menghasilkan prosedur tersimpan yang menyebarkan perubahan untuk artikel, jika ditentukan.
0x04 Kolom identitas diskrip menggunakan properti IDENTITY.
0x08 Mereplikasi kolom tanda waktu. Jika tidak diatur, kolom tanda waktu direplikasi sebagai biner.
0x10 Menghasilkan indeks berkluster yang sesuai. Bahkan jika opsi ini tidak diatur, indeks yang terkait dengan kunci primer dan batasan unik dihasilkan jika sudah ditentukan pada tabel yang diterbitkan.
0x20 1 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 primer dan batasan unik dihasilkan jika sudah ditentukan pada tabel yang diterbitkan.
0x80 Mereplikasi batasan kunci utama. Indeks apa pun yang terkait dengan batasan juga direplikasi, bahkan jika opsi 0x10 dan 0x40 tidak diaktifkan.
0x100 1 Mereplikasi pemicu pengguna pada artikel tabel, jika ditentukan.
0x200 1 Mereplikasi batasan kunci asing. Jika tabel yang direferensikan bukan bagian dari publikasi, semua batasan kunci asing pada tabel yang diterbitkan tidak direplikasi.
0x400 1 Mereplikasi batasan pemeriksaan.
0x800 1 Mereplikasi default.
0x1000 Mereplikasi kolatasi tingkat kolom.

Catatan: Opsi ini harus diatur untuk Penerbit Oracle untuk mengaktifkan perbandingan peka huruf besar/kecil.
0x2000 1 Mereplikasi properti yang diperluas yang terkait dengan objek sumber artikel yang diterbitkan.
0x4000 Mereplikasi batasan UNIK. Indeks apa pun yang terkait dengan batasan juga direplikasi, bahkan jika opsi 0x10 dan 0x40 tidak diaktifkan.
0x8000 Opsi ini tidak valid untuk Penerbit SQL Server 2005 (9.x).
0x10000 Mereplikasi batasan CHECK sebagai NOT FOR REPLICATION sehingga batasan tidak diberlakukan selama sinkronisasi.
0x20000 Mereplikasi batasan KUNCI ASING sebagai BUKAN UNTUK REPLIKASI 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 Pengikatan default.
0x800000 Pengikatan aturan.
0x1000000 Indeks teks lengkap.
0x2000000 Koleksi skema XML yang terikat ke kolom xml tidak direplikasi.
0x4000000 Mereplikasi indeks pada kolom xml .
0x8000000 Buat 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 Coba hilangkan dependensi ke objek apa pun yang bukan bagian dari publikasi.
0x100000000 Gunakan opsi ini untuk mereplikasi atribut FILESTREAM jika ditentukan pada kolom varbinary(max). 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 terkait 0x800000000.
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 terkait 0x100000000.
0x1000000000 Mengonversi jenis yang ditentukan pengguna (UDT) common language runtime (CLR) yang lebih besar dari 8000 byte 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 hierarkiid.
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.
0x20000000000 Mereplikasi atribut SPARSE untuk kolom. Untuk informasi selengkapnya tentang atribut ini, lihat Menggunakan kolom jarang.
0x40000000000 Aktifkan pembuatan skrip oleh agen rekam jepret untuk membuat tabel yang dioptimalkan memori pada pelanggan.
0x80000000000 Mengonversi indeks berkluster ke indeks non-kluster untuk artikel yang dioptimalkan memori.
0x400000000000 Mereplikasi indeks penyimpan kolom noncluster pada tabel
0x800000000000 Mereplikasi indeks penyimpan kolom nonclustered yang difilter pada tabel.
NULL Replikasi secara otomatis mengatur @schema_option ke nilai default, yang nilainya bergantung pada properti artikel lainnya. Tabel "Opsi Skema Default" di bagian Keterangan memperlihatkan opsi skema default berdasarkan jenis artikel dan jenis replikasi.

Default untuk publikasi non-SQL Server adalah 0x050D3.

1 Tidak didukung untuk Oracle Publishers.

Tidak semua nilai @schema_option valid untuk setiap jenis replikasi dan jenis artikel. Tabel Opsi Skema Yang Valid di bagian Keterangan memperlihatkan opsi skema valid yang dapat dipilih berdasarkan kombinasi jenis artikel dan jenis replikasi.

[ @destination_owner = ] N'destination_owner'

Nama pemilik objek tujuan. @destination_owner adalah sysname, dengan default NULL. Ketika @destination_owner tidak ditentukan, pemilik ditentukan secara otomatis berdasarkan aturan berikut:

Kondisi Pemilik objek tujuan
Publikasi menggunakan salinan massal mode asli untuk menghasilkan rekam jepret awal, yang hanya mendukung Pelanggan SQL Server. Default ke nilai @source_owner.
Diterbitkan dari Penerbit non-SQL Server. Default ke pemilik database tujuan.
Publikasi menggunakan salinan massal mode karakter untuk menghasilkan rekam jepret awal, yang mendukung Pelanggan non-SQL Server. Tidak ditetapkan.

Untuk mendukung Pelanggan non-SQL Server, @destination_owner harus NULL.

[ @status = ] status

Menentukan apakah artikel aktif dan opsi tambahan tentang bagaimana perubahan disebarluaskan. @status kecil, dan bisa menjadi | (Bitwise ATAU) produk dari satu atau beberapa nilai ini.

Nilai Deskripsi
1 Artikel aktif.
8 Menyertakan nama kolom dalam INSERT pernyataan.
16 (default) Menggunakan pernyataan berparameter.
24 Menyertakan nama kolom dalam INSERT pernyataan dan menggunakan pernyataan berparameter.
64 Diidentifikasi hanya untuk tujuan informasi. Tidak didukung. Kompatibilitas di masa mendatang tidak dijamin.

Misalnya, artikel aktif menggunakan pernyataan berparameter akan memiliki nilai 17 dalam kolom ini. Nilai 0 berarti bahwa artikel tidak aktif dan tidak ada properti tambahan yang ditentukan.

[ @source_owner = ] N'source_owner'

Pemilik objek sumber. @source_owner adalah sysname, dengan default NULL. @source_owner harus ditentukan untuk Penerbit Oracle.

[ @sync_object_owner = ] N'sync_object_owner'

Pemilik tampilan yang menentukan artikel yang diterbitkan. @sync_object_owner adalah sysname, dengan default NULL.

[ @filter_owner = ] N'filter_owner'

Pemilik filter. @filter_owner adalah sysname, dengan default NULL.

[ @source_object = ] N'source_object'

Objek database yang akan diterbitkan. @source_object adalah sysname, dengan default NULL. Jika @source_table adalah NULL, @source_object tidak boleh NULL. @source_object harus digunakan alih-alih @source_table. Untuk informasi selengkapnya tentang jenis objek yang dapat diterbitkan menggunakan rekam jepret atau replikasi transaksional, lihat Menerbitkan Data dan Objek Database.

[ @artid = ] OUTPUT yang di-artid

ID artikel artikel artikel baru. @artid adalah parameter OUTPUT dari jenis int.

[ @auto_identity_range = ] N'auto_identity_range'

Mengaktifkan dan menonaktifkan penanganan rentang identitas otomatis pada publikasi pada saat dibuat. @auto_identity_range adalah nvarchar(5), dan bisa menjadi salah satu nilai berikut:

Nilai Deskripsi
true Mengaktifkan penanganan rentang identitas otomatis
false Menonaktifkan penanganan rentang identitas otomatis
NULL (default) Penanganan rentang identitas diatur oleh @identityrangemanagementoption.

Catatan

@auto_identity_range tidak digunakan lagi, dan hanya disediakan untuk kompatibilitas 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 di Publisher jika artikel telah @identityrangemanagementoption diatur ke otomatis atau @auto_identity_range diatur ke true. @pub_identity_range besar, dengan default NULL. @pub_identity_range tidak didukung untuk Oracle Publishers.

[ @identity_range = ] identity_range

Mengontrol ukuran rentang di Pelanggan jika artikel memiliki @identityrangemanagementoption diatur ke otomatis atau @auto_identity_range diatur ke true. @identity_range besar, dengan default NULL. Digunakan saat @auto_identity_range diatur ke true. @identity_range tidak didukung untuk Penerbit Oracle.

[ @threshold = ] ambang batas

Nilai persentase yang mengontrol saat Agen Distribusi menetapkan rentang identitas baru. Ketika persentase nilai yang ditentukan dalam @threshold digunakan, Agen Distribusi membuat rentang identitas baru. @threshold int, dengan default NULL. Digunakan saat @identityrangemanagementoption diatur ke otomatis atau @auto_identity_range diatur ke true. @threshold tidak didukung untuk Penerbit Oracle.

[ @force_invalidate_snapshot = ] force_invalidate_snapshot

Mengakui bahwa tindakan yang diambil oleh prosedur tersimpan ini dapat 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 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 langganan ada yang akan memerlukan rekam jepret baru, memberikan izin agar rekam jepret yang ada ditandai sebagai usang dan rekam jepret baru dibuat.

[ @use_default_datatypes = ] use_default_datatypes

Apakah pemetaan tipe data kolom default digunakan saat menerbitkan artikel dari Oracle Publisher. @use_default_datatypes adalah bit, dengan default 1.

  • 1 = pemetaan kolom artikel default digunakan. Pemetaan jenis data default dapat ditampilkan dengan menjalankan sp_getdefaultdatatypemapping.

  • 0 = pemetaan kolom artikel kustom ditentukan, dan oleh karena itu sp_articleview tidak dipanggil oleh sp_addarticle.

Saat @use_default_datatypes diatur ke 0, Anda harus menjalankan sp_changearticlecolumndatatype sekali untuk setiap pemetaan kolom yang diubah dari default. Setelah semua pemetaan kolom kustom ditentukan, Anda harus menjalankan sp_articleview.

Catatan

Parameter ini hanya boleh digunakan untuk Oracle Publishers. Mengatur @use_default_datatypes ke 0 untuk Penerbit SQL Server menghasilkan kesalahan.

[ @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 Replikasi tidak melakukan manajemen rentang identitas eksplisit. Opsi ini direkomendasikan hanya untuk kompatibilitas mundur dengan versi SQL Server yang lebih lama. Tidak diizinkan untuk replikasi serekan.
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. Default ke manual dalam default topologi peer-to-peer (@auto_identity_range diabaikan).

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.

[ @publisher = ] N'publisher'

Menentukan Penerbit Non-SQL Server. @publisher adalah sysname, dengan default NULL.

@publisher tidak boleh digunakan saat menambahkan artikel ke Penerbit SQL Server.

[ @fire_triggers_on_snapshot = ] N'fire_triggers_on_snapshot'

Jika pemicu pengguna yang direplikasi dijalankan saat rekam jepret awal diterapkan. @fire_triggers_on_snapshot adalah nvarchar(5), dengan default false. true berarti bahwa pemicu pengguna pada tabel yang direplikasi dijalankan saat rekam jepret diterapkan. Agar pemicu direplikasi, nilai bitmask @schema_option harus menyertakan nilai 0x100.

Mengembalikan nilai kode

0 (berhasil) atau 1 (kegagalan).

Keterangan

sp_addarticle digunakan dalam replikasi rekam jepret atau replikasi transaksional.

Secara default, replikasi tidak menerbitkan kolom apa pun dalam tabel sumber saat tipe data kolom tidak didukung oleh replikasi. Jika Anda perlu menerbitkan kolom seperti itu, Anda harus menjalankan sp_articlecolumn untuk menambahkan kolom.

Saat menambahkan artikel ke publikasi yang mendukung replikasi transaksional peer-to-peer, pembatasan berikut berlaku:

  • Pernyataan berparameter harus ditentukan untuk semua artikel logbased. Anda harus menyertakan 16 dalam nilai @status .

  • Nama dan pemilik tabel tujuan harus cocok dengan tabel sumber.

  • Artikel tidak dapat difilter secara horizontal atau vertikal.

  • Manajemen rentang identitas otomatis tidak didukung. Anda harus menentukan nilai manual untuk @identityrangemanagementoption.

  • Jika kolom tanda waktu ada dalam tabel, Anda harus menyertakan 0x08 dalam @schema_option untuk mereplikasi kolom sebagai tanda waktu.

  • Nilai SQL tidak dapat ditentukan untuk @ins_cmd, @upd_cmd, dan @del_cmd.

Untuk informasi selengkapnya, lihat Peer-to-Peer - Replikasi Transaksional.

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 @vertical_partition diatur ke true, sp_addarticle tangguhkan pembuatan tampilan hingga sp_articleview dipanggil (setelah sp_articlecolumn terakhir ditambahkan).

Jika publikasi memungkinkan pembaruan langganan dan tabel yang diterbitkan tidak memiliki kolom pengidentifikasi unik, sp_addarticle menambahkan kolom pengidentifikasi unik ke tabel secara otomatis.

Saat mereplikasi ke pelanggan yang bukan instans SQL Server (replikasi heterogen), hanya pernyataan Transact-SQL yang didukung untuk INSERTperintah , , UPDATEdan DELETE .

Saat agen pembaca log berjalan, menambahkan artikel ke publikasi peer-to-peer dapat menyebabkan kebuntuan antara agen pembaca log dan proses yang menambahkan artikel. Untuk menghindari masalah ini, sebelum menambahkan artikel ke publikasi peer-to-peer, gunakan Monitor Replikasi untuk menghentikan agen pembaca log pada simpul tempat Anda menambahkan artikel. Mulai ulang agen pembaca log setelah menambahkan artikel.

Saat mengatur @del_cmd ke NONE atau @ins_cmd ke NONE, penyebaran UPDATE perintah mungkin juga terpengaruh dengan tidak mengirim perintah tersebut ketika pembaruan terikat terjadi. (Pembaruan terikat adalah jenis UPDATE pernyataan dari penerbit yang mereplikasi sebagai DELETE/INSERT pasangan pada pelanggan.)

Opsi skema default

Tabel ini menjelaskan nilai default yang ditetapkan oleh replikasi jika @schema_options tidak ditentukan oleh pengguna, di mana nilai ini tergantung pada jenis replikasi (ditunjukkan di bagian atas) dan jenis artikel (diperlihatkan di kolom pertama).

Jenis artikel Replikasi Transaksional replikasi snapshot
hanya skema agregat 0x01 0x01
skema func saja 0x01 0x01
skema tampilan terindeks saja 0x01 0x01
tampilan terindeks logbased 0x30F3 0x3071
tampilan terindeks logbase manualboth 0x30F3 0x3071
tampilan terindeks logbased manualfilter 0x30F3 0x3071
tampilan terindeks logbased manualview 0x30F3 0x3071
logbased 0x30F3 0x3071
penyaring manual logbased 0x30F3 0x3071
ringkasan manual logbased 0x30F3 0x3071
proc exec 0x01 0x01
proc skema saja 0x01 0x01
proc exec yang dapat diserialisasikan 0x01 0x01
tampilkan skema saja 0x01 0x01

Catatan

Jika publikasi diaktifkan untuk pembaruan antrean0x80, nilai @schema_option ditambahkan ke nilai default yang diperlihatkan dalam tabel. @schema_option default untuk publikasi non-SQL Server adalah 0x050D3.

Opsi skema yang valid

Tabel ini menjelaskan nilai @schema_option yang diizinkan berdasarkan jenis replikasi (diperlihatkan di bagian atas) dan jenis artikel (ditunjukkan pada kolom pertama).

Jenis artikel Replikasi Transaksional replikasi snapshot
logbased Semua opsi Semua opsi tetapi 0x02
penyaring manual logbased Semua opsi Semua opsi tetapi 0x02
ringkasan manual logbased Semua opsi Semua opsi tetapi 0x02
tampilan terindeks logbased Semua opsi Semua opsi tetapi 0x02
tampilan terindeks logbased manualfilter Semua opsi Semua opsi tetapi 0x02
tampilan terindeks logbased manualview Semua opsi Semua opsi tetapi 0x02
tampilan terindeks logbase manualboth Semua opsi Semua opsi tetapi 0x02
proc exec 0x01, , 0x20, 0x4000000x2000, 0x800000, 0x2000000, 0x8000000, 0x10000000, , 0x20000000, 0x40000000, dan0x80000000 0x01, , 0x20, 0x4000000x2000, 0x800000, 0x2000000, 0x8000000, 0x10000000, , 0x20000000, 0x40000000, dan0x80000000
proc exec yang dapat diserialisasikan 0x01, , 0x20, 0x4000000x2000, 0x800000, 0x2000000, 0x8000000, 0x10000000, , 0x20000000, 0x40000000, dan0x80000000 0x01, , 0x20, 0x4000000x2000, 0x800000, 0x2000000, 0x8000000, 0x10000000, , 0x20000000, 0x40000000, dan0x80000000
proc skema saja 0x01, , 0x20, 0x4000000x2000, 0x800000, 0x2000000, 0x8000000, 0x10000000, , 0x20000000, 0x40000000, dan0x80000000 0x01, , 0x20, 0x4000000x2000, 0x800000, 0x2000000, 0x8000000, 0x10000000, , 0x20000000, 0x40000000, dan0x80000000
tampilkan skema saja 0x01, , 0x010, 0x0400x020, 0x0100, 0x20000x40000, 0x100000, , 0x200000, 0x400000, 0x800000, , 0x2000000, 0x8000000, 0x40000000, dan0x80000000 0x01, , 0x010, 0x0400x020, 0x0100, 0x20000x40000, 0x100000, , 0x200000, 0x400000, 0x800000, , 0x2000000, 0x8000000, 0x40000000, dan0x80000000
skema func saja 0x01, , 0x20, 0x4000000x2000, 0x800000, 0x2000000, 0x8000000, 0x10000000, , 0x20000000, 0x40000000, dan0x80000000 0x01, , 0x20, 0x4000000x2000, 0x800000, 0x2000000, 0x8000000, 0x10000000, , 0x20000000, 0x40000000, dan0x80000000
skema tampilan terindeks saja 0x01, , 0x010, 0x0400x020, 0x0100, 0x20000x40000, 0x100000, , 0x200000, 0x400000, 0x800000, , 0x2000000, 0x8000000, 0x40000000, dan0x80000000 0x01, , 0x010, 0x0400x020, 0x0100, 0x20000x40000, 0x100000, , 0x200000, 0x400000, 0x800000, , 0x2000000, 0x8000000, 0x40000000, dan0x80000000

Catatan

Untuk memperbarui publikasi antrean, nilai 0x8000 @schema_option dan 0x80 harus diaktifkan. Nilai @schema_option yang didukung untuk publikasi non-SQL Server adalah: 0x01, , , 0x100x02, 0x40, 0x80, 0x1000dan 0x4000 0X8000.

Contoh

DECLARE @publication    AS sysname;
DECLARE @table AS sysname;
DECLARE @filterclause AS nvarchar(500);
DECLARE @filtername AS nvarchar(386);
DECLARE @schemaowner AS sysname;
SET @publication = N'AdvWorksProductTran'; 
SET @table = N'Product';
SET @filterclause = N'[DiscontinuedDate] IS NULL'; 
SET @filtername = N'filter_out_discontinued';
SET @schemaowner = N'Production';

-- Add a horizontally and vertically filtered article for the Product table.
-- Manually set @schema_option to ensure that the Production schema 
-- is generated at the Subscriber (0x8000000).
EXEC sp_addarticle 
    @publication = @publication, 
    @article = @table, 
    @source_object = @table,
    @source_owner = @schemaowner, 
    @schema_option = 0x80030F3,
    @vertical_partition = N'true', 
    @type = N'logbased',
    @filter_clause = @filterclause;

-- (Optional) Manually call the stored procedure to create the 
-- horizontal filtering stored procedure. Since the type is 
-- 'logbased', this stored procedures is executed automatically.
EXEC sp_articlefilter 
    @publication = @publication, 
    @article = @table, 
    @filter_clause = @filterclause, 
    @filter_name = @filtername;

-- Add all columns to the article.
EXEC sp_articlecolumn 
    @publication = @publication, 
    @article = @table;

-- Remove the DaysToManufacture column from the article
EXEC sp_articlecolumn 
    @publication = @publication, 
    @article = @table, 
    @column = N'DaysToManufacture', 
    @operation = N'drop';

-- (Optional) Manually call the stored procedure to create the 
-- vertical filtering view. Since the type is 'logbased', 
-- this stored procedures is executed automatically.
EXEC sp_articleview 
    @publication = @publication, 
    @article = @table,
    @filter_clause = @filterclause;
GO

Izin

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