sp_replcmds (Transact-SQL)

傳回含複寫標示之交易的命令。這個預存程序執行於發行集資料庫的發行者端。

重要事項重要事項

您只應為了進行複寫問題的疑難排解,才執行 sp_replcmds 程序。

主題連結圖示Transact-SQL 語法慣例

語法

sp_replcmds [ @maxtrans = ] maxtrans

引數

  • [@maxtrans=] maxtrans
    這是要傳回相關資訊的交易數目。maxtransint,預設值是 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