sp_setsubscriptionxactseqno (Transact-SQL)
在疑難排解期間,用來指定在訂閱者端的散發代理程式將套用之下一項交易的記錄序號 (LSN),使代理程式略過失敗的交易。這個預存程序執行於訂閱資料庫的訂閱者端。不支援非 SQL Server 訂閱者使用這個項目。
注意 |
---|
不正確使用這個預存程序或指定了不正確的 LSN 值,散發代理程式可能會還原訂閱者端先前所套用的變更,也可能會略過所有其餘變更。 |
語法
sp_setsubscriptionxactseqno [ @publisher = ] 'publisher'
, [ @publisher_db = ] 'publisher_db'
, [ @publication = ] 'publication'
, [ @xact_seqno = ] xact_seqno
引數
[ @publisher= ] 'publisher'
這是發行者的名稱。publisher 是 sysname,沒有預設值。[ @publisher_db= ] 'publisher_db'
這是發行集資料庫的名稱。publisher_db 是 sysname,沒有預設值。如果是非 SQL Server 發行者,publisher_db 就是散發資料庫的名稱。[ @publication= ] 'publication'
這是發行集的名稱。publication 是 sysname,沒有預設值。當多個發行集共用散發代理程式時,publication 必須指定 ALL 值。[ @xact_seqno= ] xact_seqno
這是造成訂閱者端錯誤之交易的 xact_seqno。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 (Transact-SQL) 來擷取失敗交易的 xact_seqno 值,再傳遞 xact_seqno 的這個值來呼叫 sp_setsubscriptionxactseqno。這可以確保只會處理在這個 LSN 之後的命令。
指定 xact_seqno 的 0 值,會將散發資料庫中的所有暫止命令傳遞給訂閱者。
如果散發代理程式使用多個訂閱資料流,sp_setsubscriptionxactseqno 可能會失敗。
當發生這個錯誤時,您必須利用單一訂閱資料流來執行散發代理程式。如需詳細資訊,請參閱<複寫散發代理程式>。
權限
只有系統管理員 (sysadmin) 固定伺服器角色或 db_owner 固定資料庫角色的成員,才能夠執行 sp_setsubscriptionxactseqno。