sp_setsubscriptionxactseqno (Transact-SQL)

適用於:SQL Server

用於疑難解答期間,使用記錄序號 (LSN) 指定最後一個傳遞的交易,讓 散發代理程式 在下一筆交易開始傳遞。 重新啟動之後,散發代理程式 會從散發資料庫快取傳回大於此浮水印 (LSN) 的交易(msrepl_commands)。 這個預存程式會在訂閱資料庫的訂閱者端執行。 不支援非 SQL Server 訂閱者。

警告

使用此預存程式不正確或指定不正確的 LSN 值,可能會導致 散發代理程式 還原已在訂閱者端套用的變更,或略過所有剩餘的變更。

Transact-SQL 語法慣例

語法

sp_setsubscriptionxactseqno
    [ @publisher = ] N'publisher'
    , [ @publisher_db = ] N'publisher_db'
    , [ @publication = ] N'publication'
    , [ @xact_seqno = ] xact_seqno
[ ; ]

引數

[ @publisher = ] N'publisher'

發行者的名稱。 @publisher為 sysname,沒有預設值。

[ @publisher_db = ] N'publisher_db'

發行集資料庫的名稱。 @publisher_db為 sysname,沒有預設值。 對於非 SQL Server 發行者, @publisher_db 是散發資料庫的名稱。

[ @publication = ] N'publication'

發行集的名稱。 @publication為 sysname,沒有預設值。 當多個發行集共用 散發代理程式 時,您必須為 @publication指定的值ALL

[ @xact_seqno = ] xact_seqno

要套用在訂閱者端之散發者端下一個交易的 LSN。 @xact_seqno為 varbinary(16),沒有預設值。

結果集

資料行名稱 資料類型 描述
ORIGINAL XACT_SEQNO varbinary(16) 要套用至訂閱者之下一個交易的原始 LSN。
UPDATED XACT_SEQNO varbinary(16) 要套用至訂閱者之下一個交易的更新 LSN。
SUBSCRIPTION STREAM COUNT int 上次同步處理期間使用的訂用帳戶數據流數目。

傳回碼值

0 (成功) 或 1 (失敗)。

備註

sp_setsubscriptionxactseqno 用於事務複製。

sp_setsubscriptionxactseqno 無法在點對點事務複製拓撲中使用。

sp_setsubscriptionxactseqno 可用來略過在訂閱者端套用時造成錯誤的特定交易。 當失敗且 散發代理程式 停止之後,請在散發者端呼叫 sp_helpsubscriptionerrors 以擷取xact_seqno失敗交易的值,然後呼叫 sp_setsubscriptionxactseqno,並針對 @xact_seqno 傳遞此值。 這可確保只會處理此 LSN 之後的命令。

指定的值 0@xact_seqno ,以將散發資料庫中的所有暫止命令傳遞至訂閱者。

sp_setsubscriptionxactseqno如果 散發代理程式 使用多訂用帳戶數據流,可能會失敗。

發生此錯誤時,您必須使用單一訂用帳戶數據流執行 散發代理程式。 如需詳細資訊,請參閱 Replication Distribution Agent

權限

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