sp_repldone (Transact-SQL)
更新用來識別伺服器最後分散式交易的記錄。這個預存程序執行於發行集資料庫的發行者端。
警告 |
---|
如果您以手動方式來執行 sp_repldone,您可以使所傳遞交易的順序和一致性失效。您只應在資深複寫支援專家的指導下,才利用 sp_repldone 來進行複寫的疑難排解。 |
語法
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,交易記錄會重設為第一個複寫的交易,且不會有任何複寫的交易標示成已散發。只有在 xactid 和 xact_seqno 都是 NULL 時,reset 才有效。
傳回碼值
0 (成功) 或 1 (失敗)
備註
sp_repldone 用於交易式複寫中。
sp_repldone 由記錄閱讀器處理序所使用,用於追蹤哪些交易已被散發。
記錄讀取器處理序利用 sp_repldone 來追蹤已散發的交易。它也可讓您變更標示成下一項等待複寫的交易。您可以在複寫交易清單中,向前或向後移動。(所有小於或等於這項交易的交易都會標示成已散發。)
您可以利用 xactid 和 xact_seqno 來取得必要的參數 sp_repltrans 或 sp_replcmds。
權限
系統管理員 (sysadmin) 固定伺服器角色或 db_owner 固定資料庫角色的成員,才能夠執行 sp_repldone。
範例
當 xactid 是 NULL、xact_seqno 是 NULL,且 reset 是 1,記錄中所有複寫的交易都會標示成已散發。當交易記錄中有不再有效的複寫交易,且您要截斷記錄時,這便非常有用,例如:
EXEC sp_repldone @xactid = NULL, @xact_segno = NULL, @numtrans = 0, @time = 0, @reset = 1
警告 |
---|
如果出現緊急狀況,您可以利用這個程序,以便在有交易暫止複寫存在時截斷交易記錄。使用這個程序可以防止 MicrosoftSQL Server 2000 複寫資料庫,直到資料庫取消發行和重新發行為止。 |