1
我需要將一些日誌數據保留在不同的表中,即使我的事務回滾了。在模擬自治事務的SQL Server 2005中
我已經瞭解到,在SQL Server中這是不可能做這樣的事情
begin tran t1
insert ...
insert ...
select ...
begin tran t2
insert into log
commit tran t2
rollback tran t1
select * from log -- IS EMPTY ALWAYS
所以我嘗試黑客 SQL服務器,我madded CLR這是要導出數據需要記錄到本地服務器硬盤以XML格式。 CLR代碼很簡單,因爲它可以:
File.WriteAllText(fileName, xmlLog.Value.ToString());
我發佈這個在生產基地生病喜歡聽到這種技術的惡棍之前。
這裏有幾個問題:
- 是否有其他更好的辦法在SQL Server中實現自治事務2005
- 怎麼能壞的握着我的事務的未提交而SQL Server正在執行CLR(寫入的數據量通過SQL是相對較小的約50 - 60紀錄的3個整數和4個浮點)
您是否已閱讀此文章? http://blogs.msdn.com/b/sqlprogrammability/archive/2008/08/22/how-to-create-an-autonomous-transaction-in-sql-server-2008.aspx – 2011-01-19 16:30:35