sp_replcmds (T-SQL)
Berlaku untuk: SQL Server Azure SQL Managed Instance
Mengembalikan perintah untuk transaksi yang ditandai untuk replikasi. Prosedur tersimpan ini dijalankan di Publisher pada database publikasi.
Penting
Prosedur sp_replcmds
harus dijalankan hanya untuk memecahkan masalah dengan replikasi.
Sintaks
sp_replcmds [ @maxtrans = ] maxtrans
[ ; ]
Argumen
[ @maxtrans = ] maxtrans
Jumlah transaksi untuk mengembalikan informasi tentang. @maxtrans int, dengan default 1
, yang menentukan transaksi berikutnya yang menunggu distribusi.
Tataan hasil
Nama kolom | Jenis data | Deskripsi |
---|---|---|
article id |
int | ID artikel. |
partial_command |
bit | Menunjukkan apakah perintah ini adalah perintah parsial. |
command |
varbinary(1024) | Nilai perintah. |
xactid |
biner(10) | ID Transaksi. |
xact_seqno |
varbinary(16) | Nomor urut transaksi. |
publication_id |
int | ID publikasi. |
command_id |
int | ID perintah dalam MSrepl_commands. |
command_type |
int | Jenis perintah. |
originator_srvname |
nama sysname | Server tempat transaksi berasal. |
originator_db |
nama sysname | Database tempat transaksi berasal. |
pkHash |
int | Penggunaan internal saja. |
originator_publication_id |
int | ID publikasi tempat transaksi berasal. |
originator_db_version |
int | Versi database tempat transaksi berasal. |
originator_lsn |
varbinary(16) | Mengidentifikasi nomor urutan log (LSN) untuk perintah dalam publikasi asal. |
Keterangan
sp_replcmds
digunakan oleh proses pembaca log dalam replikasi transaksional.
Replikasi memperlakukan klien pertama yang berjalan sp_replcmds
dalam database tertentu sebagai pembaca log.
Prosedur ini dapat menghasilkan perintah untuk tabel yang memenuhi syarat pemilik atau tidak memenuhi syarat nama tabel (default). Menambahkan nama tabel yang memenuhi syarat memungkinkan replikasi data dari tabel yang dimiliki oleh pengguna tertentu dalam satu database ke tabel yang dimiliki oleh pengguna yang sama di database lain.
Karena nama tabel dalam database sumber memenuhi syarat oleh nama pemilik, pemilik tabel dalam database target haruslah nama pemilik yang sama.
Klien yang mencoba menjalankan sp_replcmds
dalam database yang sama menerima kesalahan 18752 hingga klien pertama terputus. Setelah klien pertama terputus, klien lain dapat menjalankan sp_replcmds
, dan menjadi pembaca log baru.
Nomor pesan peringatan 18759 ditambahkan ke log kesalahan SQL Server dan log aplikasi Microsoft Windows, jika sp_replcmds
tidak dapat mereplikasi perintah teks karena penunjuk teks tidak diambil dalam transaksi yang sama.
Izin
Hanya anggota peran server tetap sysadmin atau peran database tetap db_owner yang dapat menjalankan sp_replcmds
.