0
我已經在C#中編寫了一個程序,用於從表中讀取數據,將其轉換並寫入其他四個表。讀取事務內部未提交的數據(MS SQL Server 2008)
三個目標表有一個非空整數指向最後一個目標表上的主鍵。我稱之爲V.
當我的程序讀取一塊數據到內存並轉換它時,它將使用SqlBulkCopy寫入表V.完成後,它將使用select語句檢索主鍵。
這些主鍵將正確分配給內存中的其他三個目標表。最後,最後三個表將在一個事務中使用SqlBulkCopy寫入數據庫。
但是,如果程序成功寫入表V,但無法寫入其他三個表,我有一堆髒數據。
我可以以某種方式映射進入表V中的數據與它們的主鍵,在圍繞所有代碼的事務中?
我會真誠地爲任何解決我的問題的建議感到高興。
這就是我想要做的。這就是爲什麼我需要讀取表V中的主鍵,所以我可以將它們提供給其他表。 我的麻煩是在交易中這樣做。 – rlp
什麼阻止您在單個事務中執行所有寫操作?如果您使用的是外鍵,您應該能夠執行初始寫入操作,嘗試第二個操作集,並且如果沒有寫入原始表值,則第二個集的嘗試寫入操作應該會失敗,主鍵違規。 – Narthring
我將表V寫入數據庫之後,我必須做出關係。我只知道表V上的主鍵,只有知道這些後,纔可以將表T,Q和W與V關聯起來。 我這樣做: 1)寫入V(在數據庫中) 2)讀取主鍵從V 3)寫入外鍵到T,Q和W(在內存中) 4)寫入T,Q和W(在數據庫中) 我擔心senarios,其中(1)完成但(4)不。 我感謝您的關注。 – rlp