sp_changearticle (T-SQL)
Berlaku untuk: SQL Server Azure SQL Managed Instance
Mengubah properti artikel dalam publikasi transaksi atau rekam jepret. Prosedur tersimpan ini dijalankan di Publisher pada database publikasi.
Sintaks
sp_changearticle [ [@publication= ] 'publication' ]
[ , [ @article= ] 'article' ]
[ , [ @property= ] 'property' ]
[ , [ @value= ] 'value' ]
[ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
[ , [ @force_reinit_subscription = ] force_reinit_subscription ]
[ , [ @publisher = ] 'publisher' ]
Argumen
[ @publication = ] 'publication'
Adalah nama publikasi yang berisi artikel. publikasi adalah sysname, dengan default NULL.
[ @article = ] 'article'
Adalah nama artikel yang propertinya akan diubah. artikel adalah sysname, dengan default NULL.
[ @property = ] 'property'
Adalah properti artikel yang akan diubah. properti adalah nvarchar(100).
[ @value = ] 'value'
Adalah nilai baru properti artikel. nilainya adalah nvarchar(255).
Tabel ini menjelaskan properti artikel dan nilai untuk properti tersebut.
Properti | Nilai | Deskripsi |
---|---|---|
creation_script | Jalur dan nama skrip skema artikel yang digunakan untuk membuat tabel target. Defaultnya adalah NULL. | |
del_cmd | Pernyataan DELETE untuk dijalankan; jika tidak, itu dibangun dari log. | |
description | Entri deskriptif baru untuk artikel. | |
dest_object | Disediakan untuk kompatibilitas mundur. Gunakan dest_table. | |
dest_table | Tabel tujuan baru. | |
destination_owner | Nama pemilik objek tujuan. | |
filter | Prosedur tersimpan baru yang akan digunakan untuk memfilter tabel (pemfilteran horizontal). Defaultnya adalah NULL. Tidak dapat diubah untuk publikasi dalam replikasi peer-to-peer. | |
fire_triggers_on_snapshot | benar | Pemicu pengguna yang direplikasi dijalankan saat rekam jepret awal diterapkan. Catatan: Agar pemicu direplikasi, nilai bitmask schema_option harus menyertakan nilai 0x100. |
salah | Pemicu pengguna yang direplikasi tidak dijalankan saat rekam jepret awal diterapkan. | |
identity_range | Mengontrol ukuran rentang identitas yang ditetapkan yang ditetapkan di Pelanggan. Tidak didukung untuk replikasi peer-to-peer. | |
ins_cmd | Pernyataan INSERT untuk dijalankan; jika tidak, itu dibangun dari log. | |
pre_creation_cmd | Perintah pra-pembuatan yang dapat menghilangkan, menghapus, atau memotong tabel tujuan sebelum sinkronisasi diterapkan. | |
Tidak ada | Tidak menggunakan perintah. | |
menjatuhkan | Menghilangkan tabel tujuan. | |
hapus | Menghapus tabel tujuan. | |
Memotong | Memotong tabel tujuan. | |
pub_identity_range | Mengontrol ukuran rentang identitas yang ditetapkan yang ditetapkan di Pelanggan. Tidak didukung untuk replikasi peer-to-peer. | |
schema_option | Menentukan bitmap opsi pembuatan skema untuk artikel tertentu. schema_option biner(8). Untuk informasi selengkapnya, lihat bagian Keterangan nanti dalam topik ini. | |
0x00 | Menonaktifkan pembuatan skrip oleh Agen Rekam Jepret. | |
0x01 | Menghasilkan pembuatan objek (CREATE TABLE, CREATE PROCEDURE, dan sebagainya). | |
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. | |
0x20 | Mengonversi jenis data yang ditentukan pengguna (UDT) ke jenis data dasar di Pelanggan. Opsi ini tidak dapat digunakan ketika ada batasan CHECK atau DEFAULT pada kolom UDT, jika kolom UDT adalah bagian dari kunci utama, atau jika kolom komputasi mereferensikan kolom UDT. Tidak didukung untuk Oracle Publishers. | |
0x40 | Menghasilkan indeks nonclustered yang sesuai. | |
0x80 | Termasuk integritas referensial yang dinyatakan pada kunci primer. | |
0x100 | Mereplikasi pemicu pengguna pada artikel tabel, jika ditentukan. | |
0x200 | Mereplikasi batasan KUNCI ASING. Jika tabel yang direferensikan bukan bagian dari publikasi, semua batasan KUNCI ASING pada tabel yang diterbitkan tidak direplikasi. | |
0x400 | Mereplikasi batasan CHECK. | |
0x800 | Mereplikasi default. | |
0x1000 | Mereplikasi kolatasi tingkat kolom. | |
0x2000 | Mereplikasi properti yang diperluas yang terkait dengan objek sumber artikel yang diterbitkan. | |
0x4000 | Mereplikasi kunci unik jika ditentukan pada artikel tabel. | |
0x8000 | Mereplikasi kunci primer dan kunci unik pada artikel tabel sebagai batasan menggunakan pernyataan ALTER TABLE. Catatan: Opsi ini tidak digunakan lagi. Gunakan 0x80 dan 0x4000 sebagai gantinya. |
|
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(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 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 Kompresi Data. | |
0x800000000 | Atur opsi ini untuk menyimpan data FILESTREAM pada grup filenya sendiri di Pelanggan. Jika opsi ini tidak diatur, data FILESTREAM disimpan pada 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 (Transact-SQL). | |
0x4000000000 | Mereplikasi indeks yang difilter pada tabel. Untuk informasi selengkapnya tentang indeks yang difilter, lihat Membuat Indeks Terfilter. | |
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 memori yang dioptimalkan pada pelanggan. | |
0x80000000000 | Mengonversi indeks berkluster ke indeks non-kluster untuk artikel yang dioptimalkan memori. | |
status | Menentukan status baru properti. | |
dts partisi horizontal | Diidentifikasi hanya untuk tujuan informasi. Tidak didukung. Kompatibilitas di masa mendatang tidak dijamin. | |
sertakan nama kolom | Nama kolom disertakan dalam pernyataan INSERT yang direplikasi. | |
tidak ada nama kolom | Nama kolom tidak disertakan dalam pernyataan INSERT yang direplikasi. | |
tidak ada partisi horizontal dts | Partisi horizontal untuk artikel tidak ditentukan oleh langganan yang dapat diubah. | |
Tidak ada | Menghapus semua opsi status dalam tabel sysarticles dan menandai artikel sebagai tidak aktif. | |
parameter | Perubahan disebarkan ke Pelanggan menggunakan perintah berparameter. Ini adalah pengaturan default untuk artikel baru. | |
literal string | Perubahan disebarluaskan ke Pelanggan menggunakan nilai literal string. | |
sync_object | Nama tabel atau tampilan yang digunakan untuk menghasilkan file output sinkronisasi. Defaultnya adalah NULL. Tidak didukung untuk Oracle Publishers. | |
ruang tabel | Mengidentifikasi ruang tabel yang digunakan oleh tabel pengelogan untuk artikel yang diterbitkan dari database Oracle. Untuk informasi selengkapnya, lihat Mengelola Ruang Tabel Oracle. | |
ambang | Nilai persentase yang mengontrol saat Agen Distribusi menetapkan rentang identitas baru. Tidak didukung untuk replikasi peer-to-peer. | |
jenis | Tidak didukung untuk Oracle Publishers. | |
logbased | Artikel berbasis log. | |
manualboth logbased | Artikel berbasis log dengan filter manual dan tampilan manual. Opsi ini mengharuskan properti sync_object dan filter juga diatur. Tidak didukung untuk Oracle Publishers. | |
penyaring manual logbased | Artikel berbasis log dengan filter manual. Opsi ini mengharuskan properti sync_object dan filter juga diatur. Tidak didukung untuk Oracle Publishers. | |
ringkasan manual logbased | Artikel berbasis log dengan tampilan manual. Opsi ini mengharuskan properti sync_object juga diatur. Tidak didukung untuk Oracle Publishers. | |
viewlogbased terindeks | Artikel tampilan terindeks berbasis log. Tidak didukung untuk Oracle Publishers. Untuk jenis artikel ini, tabel dasar tidak perlu diterbitkan secara terpisah. | |
viewlogbased manualboth terindeks | Artikel tampilan terindeks berbasis log dengan filter manual dan tampilan manual. Opsi ini mengharuskan properti sync_object dan filter juga diatur. Untuk jenis artikel ini, tabel dasar tidak perlu diterbitkan secara terpisah. Tidak didukung untuk Oracle Publishers. | |
viewlogbased manualfilter terindeks | Artikel tampilan terindeks berbasis log dengan filter manual. Opsi ini memerlukan properti sync_object dan filter juga diatur. Untuk jenis artikel ini, tabel dasar tidak perlu diterbitkan secara terpisah. Tidak didukung untuk Oracle Publishers. | |
ringkasan manual viewlogbased terindeks | Artikel tampilan terindeks berbasis log dengan tampilan manual. Opsi ini mengharuskan properti sync_object juga diatur. Untuk jenis artikel ini, tabel dasar tidak perlu diterbitkan secara terpisah. Tidak didukung untuk Oracle Publishers. | |
upd_cmd | Pernyataan UPDATE untuk dijalankan; jika tidak, itu dibangun dari log. | |
NULL | NULL | Mengembalikan daftar properti artikel yang dapat diubah. |
[ @force_invalidate_snapshot = ] force_invalidate_snapshot
Mengakui bahwa tindakan yang diambil oleh prosedur tersimpan ini dapat membatalkan rekam jepret yang ada. force_invalidate_snapshot sedikit, dengan default 0.
0 menentukan bahwa perubahan pada 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 perubahan pada artikel dapat menyebabkan rekam jepret tidak valid, dan jika ada langganan yang akan memerlukan rekam jepret baru, memberikan izin agar rekam jepret yang ada ditandai sebagai usang dan rekam jepret baru yang dihasilkan.
Lihat bagian Keterangan untuk properti yang, saat diubah, memerlukan pembuatan rekam jepret baru.
[ @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 sedikit dengan default 0.
0 menentukan bahwa perubahan pada artikel tidak menyebabkan langganan diinisialisasi ulang. Jika prosedur tersimpan mendeteksi bahwa perubahan akan mengharuskan langganan yang ada diinisialisasi ulang, kesalahan terjadi dan tidak ada perubahan yang dilakukan.
1 menentukan bahwa perubahan pada artikel menyebabkan langganan yang ada diinisialisasi ulang, dan memberikan izin untuk reinitialisasi langganan terjadi.
Lihat bagian Keterangan untuk properti yang, saat diubah, mengharuskan semua langganan yang ada diinisialisasi ulang.
[ @publisher = ] 'publisher'
Menentukan Penerbit non-SQL Server. publisher adalah sysname, dengan default NULL.
Catatan
publisher tidak boleh digunakan saat mengubah properti artikel pada Penerbit SQL Server.
Mengembalikan Nilai Kode
0 (berhasil) atau 1 (kegagalan)
Keterangan
sp_changearticle digunakan dalam replikasi rekam jepret dan replikasi transaksional.
Saat artikel milik publikasi yang mendukung replikasi transaksional peer-to-peer, Anda hanya dapat mengubah deskripsi, ins_cmd, upd_cmd, dan properti del_cmd.
Mengubah salah satu properti berikut mengharuskan rekam jepret baru dibuat, dan Anda harus menentukan nilai 1 untuk parameter force_invalidate_snapshot :
del_cmd
dest_table
destination_owner
ins_cmd
pre_creation_cmd
schema_options
upd_cmd
Mengubah salah satu properti berikut mengharuskan langganan yang ada diinisialisasi ulang, dan Anda harus menentukan nilai 1 untuk parameter force_reinit_subscription .
del_cmd
dest_table
destination_owner
filter
ins_cmd
status
upd_cmd
Dalam publikasi yang sudah ada, Anda dapat menggunakan sp_changearticle untuk mengubah artikel tanpa harus menghilangkan dan membuat ulang seluruh publikasi.
Catatan
Saat mengubah nilai schema_option, sistem tidak melakukan pembaruan bitwise. Ini berarti bahwa ketika Anda mengatur schema_option menggunakan sp_changearticle, pengaturan bit yang ada mungkin dinonaktifkan. Untuk mempertahankan pengaturan yang ada, Anda harus melakukan | (Bitwise ATAU) antara nilai yang Anda tetapkan dan nilai schema_option saat ini, yang dapat ditentukan dengan menjalankan sp_helparticle.
Opsi Skema yang Valid
Tabel berikut ini menjelaskan nilai schema_option yang diizinkan berdasarkan jenis replikasi (diperlihatkan di bagian atas) dan jenis artikel (diperlihatkan di kolom pertama).
Jenis artikel | Jenis replikasi - Transaksional | Jenis replikasi - Rekam jepret |
---|---|---|
logbased | Semua opsi | Semua opsi kecuali 0x02 |
penyaring manual logbased | Semua opsi | Semua opsi kecuali 0x02 |
ringkasan manual logbased | Semua opsi | Semua opsi kecuali 0x02 |
tampilan terindeks logbased | Semua opsi | Semua opsi kecuali 0x02 |
tampilan terindeks logbased manualfilter | Semua opsi | Semua opsi kecuali 0x02 |
tampilan terindeks logbased manualview | Semua opsi | Semua opsi kecuali 0x02 |
tampilan terindeks logbase manualboth | Semua opsi | Semua opsi kecuali 0x02 |
proc exec | 0x01, 0x20, 0x2000, 0x400000, 0x800000 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000, dan 0x80000000 | 0x01, 0x20, 0x2000, 0x400000, 0x800000 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000, dan 0x80000000 |
proc exec yang dapat diserialisasikan | 0x01, 0x20, 0x2000, 0x400000, 0x800000 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000, dan 0x80000000 | 0x01, 0x20, 0x2000, 0x400000, 0x800000 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000, dan 0x80000000 |
proc skema saja | 0x01, 0x20, 0x2000, 0x400000, 0x800000 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000, dan 0x80000000 | 0x01, 0x20, 0x2000, 0x400000, 0x800000 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000, dan 0x80000000 |
tampilkan skema saja | 0x01, 0x010, 0x020, 0x040, 0x0100, 0x2000, 0x40000, 0x100000, 0x200000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x40000000, dan 0x80000000 | 0x01, 0x010, 0x020, 0x040, 0x0100, 0x2000, 0x40000, 0x100000, 0x200000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x40000000, dan 0x80000000 |
skema func saja | 0x01, 0x20, 0x2000, 0x400000, 0x800000 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000, dan 0x80000000 | 0x01, 0x20, 0x2000, 0x400000, 0x800000 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000, dan 0x80000000 |
skema tampilan terindeks saja | 0x01, 0x010, 0x020, 0x040, 0x0100, 0x2000, 0x40000, 0x100000, 0x200000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x40000000, dan 0x80000000 | 0x01, 0x010, 0x020, 0x040, 0x0100, 0x2000, 0x40000, 0x100000, 0x200000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x40000000, dan 0x80000000 |
Catatan
Untuk memperbarui publikasi antrean, nilai schema_option 0x80 harus diaktifkan. Nilai schema_option yang didukung untuk publikasi non-SQL Server adalah: 0x01, 0x02, 0x10, 0x40, 0x80, 0x1000, dan 0x4000.
Contoh
DECLARE @publication AS sysname;
DECLARE @article AS sysname;
DECLARE @option AS int;
SET @publication = N'AdvWorksProductTran';
SET @article = N'Product';
SET @option = (SELECT CAST(0x0000000002030073 AS int));
-- Change the schema options to replicate schema with XML.
USE [AdventureWorks2022]
EXEC sp_changearticle
@publication = @publication,
@article = @article,
@property = N'schema_option',
@value = @option,
@force_invalidate_snapshot = 1;
GO
Izin
Hanya anggota peran server tetap sysadmin atau peran database tetap db_owner yang dapat menjalankan sp_changearticle.
Lihat Juga
Menampilkan dan Mengubah Properti Artikel
Mengubah Properti Publikasi dan Artikel
sp_addarticle (T-SQL)
sp_articlecolumn (T-SQL)
sp_droparticle (T-SQL)
sp_helparticle (T-SQL)
sp_helparticlecolumns (T-SQL)
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk