sp_repldone (Transact-SQL)

更新用來識別伺服器最後分散式交易的記錄。 這個預存程序執行於發行集資料庫的發行者端。

警告注意事項注意

如果您手動執行 sp_repldone,可以使已傳遞之交易的順序和一致性無效。 您只應在資深複寫支援專家的指導下,才利用 sp_repldone 來進行複寫的疑難排解。

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

語法

sp_repldone [ @xactid= ] xactid  
        , [ @xact_seqno= ] xact_seqno 
    [ , [ @numtrans= ] numtrans ] 
    [ , [ @time= ] time 
    [ , [ @reset= ] reset ]

引數

  • [ @xactid=] xactid
    這是伺服器最後分散式交易第一筆記錄的記錄序號 (LSN)。xactid 是 binary(10),沒有預設值。

  • [ @xact_seqno=] xact_seqno
    這是伺服器最後分散式交易最後一筆記錄的 LSN。xact_seqno 是 binary(10),沒有預設值。

  • [ @numtrans=] numtrans
    這是散發的交易數目。numtrans 是 int,沒有預設值。

  • [ @time=] time
    這是散發最後一批交易所需要的毫秒數 (如果有提供)。 time 是 int,沒有預設值。

  • [ @reset=] reset
    這是重設狀態。 reset 是 int,沒有預設值。 如果是 1,記錄中所有複寫的交易都會標示成已散發。 如果是 0,交易記錄會重設為第一個複寫的交易,且不會有任何複寫的交易標示成已散發。 只有在 xactidxact_seqno 都是 NULL 時,reset 才有效。

傳回碼值

0 (成功) 或 1 (失敗)

備註

sp_repldone 用於異動複寫中。

sp_repldone 由記錄閱讀器處理序所使用,用於追蹤哪些交易已被散發。

記錄讀取器處理序利用 sp_repldone 來追蹤已散發的交易。 它也可讓您變更標示成下一項等待複寫的交易。 您可以在複寫交易清單中,向前或向後移動。 (所有小於或等於這項交易的交易都會標示成已散發。)

您可以利用 xactidxact_seqno 來取得必要的參數 sp_repltranssp_replcmds

權限

系統管理員 (sysadmin) 固定伺服器角色或 db_owner 固定資料庫角色的成員,才能夠執行 sp_repldone

範例

xactid 是 NULL、xact_seqno 是 NULL,且 reset1,記錄中所有複寫的交易都會標示成已散發。 當交易記錄中有不再有效的複寫交易,且您要截斷記錄時,這便非常有用,例如:

EXEC sp_repldone @xactid = NULL, @xact_segno = NULL, @numtrans = 0,     @time = 0, @reset = 1
警告注意事項注意

如果出現緊急狀況,您可以利用這個程序,以便在有交易暫止複寫存在時截斷交易記錄。

請參閱

參考

sp_replcmds (Transact-SQL)

sp_replflush (Transact-SQL)

sp_repltrans (Transact-SQL)

系統預存程序 (Transact-SQL)