sp_replcmds (Transact-SQL)

適用於:SQL ServerAzure SQL 受控執行個體

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

重要

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

Transact-SQL 語法慣例

語法

  
sp_replcmds [ @maxtrans = ] maxtrans  

引數

[ @maxtrans = ] maxtrans 這是傳回相關信息的交易數目。 maxtransint,預設值為 1,指定下一個等待散發的交易。

結果集

資料行名稱 資料類型 描述
發行項標識碼 int 發行項的標識碼。
partial_command bit 指出這是否為部分命令。
命令 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 新增至 Microsoft SQL Server 錯誤記錄檔和 Microsoft Windows 應用程式記錄檔,因為相同的交易中未擷取文字指標。

權限

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

另請參閱

錯誤訊息
sp_repldone (Transact-SQL)
sp_replflush (Transact-SQL)
sp_repltrans (Transact-SQL)
系統預存程序 (Transact-SQL)