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 = ] N'publication'
    [ , [ @rowcount_only = ] rowcount_only ]
    [ , [ @full_or_fast = ] full_or_fast ]
    [ , [ @shutdown_agent = ] shutdown_agent ]
    [ , [ @publisher = ] N'publisher' ]
[ ; ]

Argumen

[ @publication = ] N'publikasi'

Nama publikasi. @publication adalah sysname, tanpa default.

[ @rowcount_only = ] rowcount_only

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

[ @full_or_fast = ] full_or_fast

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 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 adalah NULL dan prosedur tersimpan sedang digunakan untuk mendapatkan nilai, nilai penuh COUNT(*) selalu digunakan.

[ @shutdown_agent = ] shutdown_agent

Menentukan 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 = ] N'publisher'

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

@publisher 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 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 mungkin mendeteksi kesalahan yang memuaskan. sp_publication_validation pertama 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.