1

我在SQL Server 2005中設置了事務複製,並且禁用了設置複製時創建的DDL觸發器。玩了一下之後(瞭解將會發生什麼),交易被破壞了,因爲我已將發佈者列更改爲訂戶上的VARCHARINT。我已經發現了兩個程序,這將有助於跳過此車交易修復了SQL Server 2005中破壞的事務複製

EXEC sp_helpsubscriptionerrors 
    @publisher='DB1',@publisher_db='repl_test',@publication='repl_test_table', 
    @subscriber='DB2',@subscriber_db='repl_test' 

這給了我一個結果,我可以看到錯誤(失敗的轉換VARCHARINT

id time     [...] error_code error_text            xact_seqno 
24 2012-02-23 08:33:35.313 [...] 8114  Fehler beim Konvertieren des varchar-Datentyps in int. 0x00139791000CC79C000600000000 
24 2012-02-23 08:33:35.310 [...] 8114  Fehler beim Konvertieren des varchar-Datentyps in int. 0x00139791000CC79C000600000000 
[...] 

和我使用xact_seqno從結果(0x00139791000CC79C000600000000)在下一步驟

EXEC sp_setsubscriptionxactseqno 
    @publisher='DB1',@publisher_db='repl_test',@publication='repl_test_table', 
    @xact_seqno=0x00139791000CC79C000600000000 

WH來執行以下過程ich會說:

錯誤20017 - 訂閱上不存在訂閱。

咦?

回答

2

AHHHH,在看看的sp_setsubscriptionxactseqno一個internal code可以看到,這個過程在訂閱數據庫中執行(而不是在distribution數據庫,其中sp_helpsubscriptionerrors已被執行)...但是這ISN沒有記錄在MSDN中。