sp_replcmds (Transact-SQL)
適用於:SQL Server Azure SQL 受控執行個體
傳回標示為複寫之交易的命令。 這個預存程式會在發行集資料庫的發行者端執行。
重要
sp_replcmds程序應該只執行,以針對復寫問題進行疑難解答。
語法
sp_replcmds [ @maxtrans = ] maxtrans
引數
[ @maxtrans = ] maxtrans
這是傳回相關信息的交易數目。 maxtrans 為 int,預設值為 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無法在相同交易中擷取文字指標,Microsoft SQL Server 錯誤記錄檔和Microsoft Windows 應用程式記錄檔中新增警告訊息號碼 18759。
權限
只有系統管理員固定伺服器角色或db_owner固定資料庫角色的成員才能執行sp_replcmds。
另請參閱
錯誤訊息
sp_repldone (Transact-SQL)
sp_replflush (Transact-SQL)
sp_repltrans (Transact-SQL)
系統預存程序 (Transact-SQL)