sp_marksubscriptionvalidation (T-SQL)
Berlaku untuk: SQL Server
Menandai transaksi terbuka saat ini menjadi transaksi validasi tingkat langganan untuk pelanggan yang ditentukan. Prosedur tersimpan ini dijalankan di Publisher pada database publikasi.
Sintaks
sp_marksubscriptionvalidation [ @publication = ] 'publication'
, [ @subscriber = ] 'subscriber'
, [ @destination_db = ] 'destination_db'
[ , [ @publisher = ] 'publisher' ]
Argumen
[ @publication = ] 'publication'
Adalah nama publikasi. publikasi adalah sysname, tanpa default.
[ @subscriber = ] 'subscriber'
Adalah nama Pelanggan. pelanggan adalah sysname, tanpa default.
[ @destination_db = ] 'destination_db'
Adalah nama database tujuan. destination_db adalah sysname, tanpa default.
[ @publisher = ] 'publisher'
Menentukan Penerbit SQL Server non-Microsoft. publisher adalah sysname, dengan default NULL.
Catatan
penerbit tidak boleh digunakan untuk publikasi milik Penerbit SQL Server.
Mengembalikan Nilai Kode
0 (berhasil) atau 1 (kegagalan)
Keterangan
sp_marksubscriptionvalidation digunakan dalam replikasi transaksional.
sp_marksubscriptionvalidation tidak mendukung pelanggan non-SQL Server.
Untuk Penerbit non-SQL Server, Anda tidak dapat menjalankan sp_marksubscriptionvalidation dari dalam transaksi eksplisit. Ini karena transaksi eksplisit tidak didukung melalui koneksi server tertaut yang digunakan untuk mengakses Publisher.
sp_marksubscriptionvalidation harus digunakan bersama dengan sp_article_validation (Transact-SQL), menentukan nilai 1 untuk subscription_level, dan dapat digunakan dengan panggilan lain untuk sp_marksubscriptionvalidation menandai transaksi terbuka saat ini untuk pelanggan lain.
Izin
Hanya anggota peran server tetap sysadmin atau peran database tetap db_owner yang dapat menjalankan sp_marksubscriptionvalidation.
Contoh
Kueri berikut ini dapat diterapkan ke database penerbitan untuk memposting perintah validasi tingkat langganan. Perintah ini diambil oleh Agen Distribusi dari Pelanggan tertentu. Perhatikan bahwa transaksi pertama memvalidasi artikel 'art1', sementara transaksi kedua memvalidasi 'art2'. Perhatikan juga bahwa panggilan ke sp_marksubscriptionvalidation dan sp_article_validation (Transact-SQL) telah dienkapsulasi dalam transaksi. Kami hanya merekomendasikan satu panggilan ke sp_article_validation (Transact-SQL) per transaksi. Ini karena sp_article_validation (Transact-SQL) memegang kunci tabel bersama pada tabel sumber selama durasi transaksi. Anda harus menjaga transaksi tetap pendek untuk memaksimalkan konkurensi.
begin tran
exec sp_marksubscriptionvalidation @publication = 'pub1',
@subscriber = 'Sub', @destination_db = 'SubDB'
exec sp_marksubscriptionvalidation @publication = 'pub1',
@subscriber = 'Sub2', @destination_db = 'SubDB'
exec sp_article_validation @publication = 'pub1', @article = 'art1',
@rowcount_only = 0, @full_or_fast = 0, @shutdown_agent = 0,
@subscription_level = 1
commit tran
begin tran
exec sp_marksubscriptionvalidation @publication = 'pub1',
@subscriber = 'Sub', @destination_db = 'SubDB'
exec sp_marksubscriptionvalidation @publication = 'pub1',
@subscriber = 'Sub2', @destination_db = 'SubDB'
exec sp_article_validation @publication = 'pub1', @article = 'art2',
@rowcount_only = 0, @full_or_fast = 0, @shutdown_agent = 0,
@subscription_level = 1
commit tran
Lihat Juga
Prosedur Tersimpan Sistem (Transact-SQL)
Memvalidasi Data yang Direplikasi
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