2016-03-07 39 views
0

有沒有辦法從事務中排除的事務塊中執行單個SQL Server T-SQL語句?有沒有辦法在事務塊中執行一條獨立於事務的SQL語句

例如,我們想要在批處理過程中定期寫入狀態表,這是在一個事務中,以告知整個過程已經完成了多久(參見下面的原因),但是如果批處理過程失敗,事務被回滾,寫入狀態表的記錄應該保持不變。

我們一起寫入狀態表的原因是,當批次運行時可以監視批次的進度。

回答

2

你在找什麼名字(至少在Oracle中):自治事務。如果你是谷歌的「自治事務sql server」,你會得到如thisthis的引用。

基本上有在SQL Server三種方法:

  1. 建立交易到數據庫的新連接。
  2. 將日誌記錄寫入文件而不是數據庫(文件不遵循事務語義)。如果需要,您可以稍後將文件中的記錄加載到表中。
  3. 不要使用顯式事務,在失敗的情況下執行「自定義」回滾。

這些都不是完全令人滿意,但它們是可行的解決方法。

相關問題