Bagikan melalui


sp_publication_validation (T-SQL)

Berlaku untuk: SQL Server Azure SQL Managed Instance

Memulai permintaan validasi artikel untuk setiap artikel dalam publikasi yang ditentukan. Prosedur tersimpan ini dijalankan di Publisher pada database publikasi.

Konvensi sintaks transact-SQL

Sintaks

  
sp_publication_validation [ @publication = ] 'publication'  
    [ , [ @rowcount_only = ] type_of_check_requested ]  
    [ , [ @full_or_fast = ] full_or_fast ]  
    [ , [ @shutdown_agent = ] shutdown_agent ]  
    [ , [ @publisher = ] 'publisher' ]  

Argumen

[ @publication = ] 'publication' Adalah nama publikasi. publikasi adalah sysname, tanpa default.

[ @rowcount_only = ] 'rowcount_only' Apakah hanya mengembalikan rowcount untuk tabel. rowcount_only kecil dan bisa menjadi salah satu nilai berikut.

Nilai Deskripsi
0 Lakukan checksum yang kompatibel dengan SQL Server 7.0.

Catatan: Saat artikel difilter secara horizontal, operasi rowcount dilakukan alih-alih operasi checksum.
1 (default) Lakukan pemeriksaan rowcount saja.
2 Lakukan rowcount dan checksum biner.

Catatan: Untuk Pelanggan SQL Server versi 7.0, hanya validasi rowcount yang dilakukan.

[ @full_or_fast = ] 'full_or_fast' Adalah metode yang digunakan untuk menghitung rowcount. full_or_fast kecil dan bisa menjadi salah satu nilai berikut.

Nilai Deskripsi
0 Apakah jumlah penuh menggunakan COUNT(*).
1 Apakah hitungan cepat dari sysindexes.rows. Menghitung baris dalam sys.sysindexes jauh lebih cepat daripada menghitung baris dalam tabel aktual. Namun, karena sys.sysindexes diperbarui dengan malas, rowcount mungkin tidak akurat.
2 (default) Lakukan penghitungan cepat bersyarat dengan terlebih dahulu mencoba metode cepat. Jika metode cepat menunjukkan perbedaan, kembali ke metode penuh. Jika expected_rowcount NULL dan prosedur tersimpan digunakan untuk mendapatkan nilainya, COUNT(*) penuh selalu digunakan.

[ @shutdown_agent = ] 'shutdown_agent' Apakah Agen Distribusi harus segera dimatikan setelah menyelesaikan validasi. shutdown_agent adalah bit, dengan default 0. Jika 0, agen replikasi tidak dimatikan. Jika 1, agen replikasi dimatikan setelah artikel terakhir divalidasi.

[ @publisher = ] 'publisher' Menentukan Penerbit non-SQL Server. publisher adalah sysname, dengan default NULL.

Catatan

penerbit tidak boleh digunakan saat meminta validasi pada Penerbit SQL Server.

Mengembalikan Nilai Kode

0 (berhasil) atau 1 (kegagalan)

Keterangan

sp_publication_validation digunakan dalam replikasi transaksional.

sp_publication_validation dapat dipanggil kapan saja setelah artikel yang terkait dengan publikasi telah diaktifkan. Prosedur ini dapat dijalankan secara manual (satu kali) atau sebagai bagian dari pekerjaan yang dijadwalkan secara teratur yang memvalidasi data.

Jika aplikasi Anda memiliki Pelanggan yang segera diperbarui, sp_publication_validation dapat mendeteksi kesalahan yang memacu. sp_publication_validation terlebih dahulu menghitung rowcount atau checksum di Publisher lalu di Pelanggan. Karena pemicu pembaruan segera dapat menyebarluaskan pembaruan dari Pelanggan ke Penerbit setelah rowcount atau checksum selesai di Penerbit, tetapi sebelum rowcount atau checksum selesai di Pelanggan, nilai dapat berubah. Untuk memastikan bahwa nilai di Pelanggan dan Penerbit tidak berubah saat memvalidasi publikasi, hentikan layanan Koordinator Transaksi Terdistribusi Microsoft (MS DTC) di Penerbit selama validasi.

Izin

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

Lihat Juga

Memvalidasi Data di Pelanggan
sp_article_validation (T-SQL)
sp_table_validation (T-SQL)
Prosedur Tersimpan Sistem (Transact-SQL)