sp_replcmds (Transact-SQL)
傳回含複寫標示之交易的命令。這個預存程序執行於發行集資料庫的發行者端。
重要事項: |
---|
您只應為了進行複寫問題的疑難排解,才執行 sp_replcmds 程序。 |
語法
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 因未在相同交易中擷取文字指標而無法複寫文字命令,便會在 Microsoft SQL Server 錯誤記錄和 Microsoft Windows 應用程式記錄檔中,加入警告訊息編號 18759。
權限
只有系統管理員 (sysadmin) 固定伺服器角色或 db_owner 固定資料庫角色的成員,才能夠執行 sp_replcmds。
請參閱
參考
sp_replsetoriginator (Transact-SQL)
sp_replflush (Transact-SQL)
sp_repltrans (Transact-SQL)
系統預存程序 (Transact-SQL)