分享方式:


sp_replcmds (Transact-SQL)

適用於:SQL Server Azure SQL 受控執行個體

傳回標示為複寫之交易的命令。 這個預存程式會在發行集資料庫的發行者端執行。

重要

程序 sp_replcmds 應該只執行,以針對復寫問題進行疑難解答。

Transact-SQL 語法慣例

語法

sp_replcmds [ @maxtrans = ] maxtrans
[ ; ]

引數

[ @maxtrans = ] maxtrans

要傳回相關信息的交易數目。 @maxtrans為 int,預設值1為 ,指定下一個等待散發的交易。

結果集

資料行名稱 資料類型 描述
article id int 發行項的標識碼。
partial_command bit 指出此命令是否為部分命令。
command varbinary(1024) 命令值。
xactid binary(10) 交易標識碼。
xact_seqno varbinary(16) 交易序號。
publication_id int 發行集的標識碼。
command_id int MSrepl_commands 中命令的標識碼。
command_type int 命令的類型。
originator_srvname sysname 發生交易的伺服器。
originator_db sysname 交易來源的資料庫。
pkHash int 僅供內部使用。
originator_publication_id int 交易來源之發行集的標識碼。
originator_db_version int 交易來源的資料庫版本。
originator_lsn varbinary(16) 識別原始發行集中命令的記錄序號 (LSN)。

備註

sp_replcmds 由事務複製中的記錄讀取器進程使用。

複寫會將指定資料庫內執行 sp_replcmds 的第一個客戶端視為記錄讀取器。

此程式可以產生擁有者限定數據表的命令,或不符合數據表名稱(預設值)。 新增限定數據表名稱可讓某個資料庫中特定使用者所擁有的數據表,將數據復寫到另一個資料庫中相同使用者所擁有的數據表。

因為源資料庫中的數據表名稱是以擁有者名稱限定,因此目標資料庫中數據表的擁有者必須是相同的擁有者名稱。

嘗試在相同資料庫內執行的 sp_replcmds 用戶端會收到錯誤 18752,直到第一個用戶端中斷連線為止。 第一個用戶端中斷連線之後,另一個用戶端可以執行 sp_replcmds,並成為新的記錄讀取器。

如果無法復寫文字命令,則會 sp_replcmds 將警告訊息編號 18759 新增至 SQL Server 錯誤記錄檔和Microsoft Windows 應用程式記錄檔,因為文字指標未在同一筆交易中擷取。

權限

只有系統管理員固定伺服器角色或db_owner固定資料庫角色的成員才能執行 sp_replcmds