sp_repldone (Transact-SQL)

適用於:SQL ServerAzure SQL 受控執行個體

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

警告

如果您手動執行 sp_repldone ,則可以使傳遞交易的順序和一致性失效。 sp_repldone只應用於疑難解答複寫,如經驗豐富的復寫支援專業人員指示。

Transact-SQL 語法慣例

語法

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

引數

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

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

[ @numtrans = ] numtrans 這是分散式交易數目。 numtransint,沒有預設值。

[ @time = ] time 這是提供時需要散發最後一批交易的毫秒數。 timeint,沒有預設值。

[ @reset = ] reset 這是重設狀態。 resetint,沒有預設值。 如果 為 1,記錄中的所有複寫交易都會標示為分散式。 如果 為 0,事務歷史記錄會重設為第一個複寫的交易,而且不會將任何復寫的交易標示為分散式。 只有在 xactid 和 xact_seqno 都是 NULL 時,reset 才有效。

傳回碼值

0 (成功) 或 1 (失敗)

備註

sp_repldone用於事務複製。

記錄讀取器程式會使用sp_repldone來追蹤已散發的交易。

透過 sp_repldone,您可以手動告訴伺服器已復寫交易(傳送至散發者)。 它也可讓您變更標示為下一個等待複寫的交易。 您可以在複寫的交易清單中向前或向後移動。 (所有小於或等於該交易的交易都會標示為分散式。

您可以使用sp_repltrans或sp_replcmds來取得必要的參數 xactidxact_seqno

權限

系統管理員固定伺服器角色或db_owner固定資料庫角色的成員可以執行sp_repldone

範例

xactid 為 NULL 時, xact_seqno 為 NULL,而 重設1,記錄中的所有復寫交易都會標示為分散式。 當事務歷史記錄中有已復寫的交易不再有效且您想要截斷記錄檔時,這非常有用,例如:

EXEC sp_repldone @xactid = NULL, @xact_seqno = NULL, @numtrans = 0, @time = 0, @reset = 1  

警告

此程式可用於緊急情況下,以允許在事務暫止複寫存在時截斷事務歷史記錄。

另請參閱

sp_replcmds (Transact-SQL)
sp_replflush (Transact-SQL)
sp_repltrans (Transact-SQL)
系統預存程序 (Transact-SQL)