2010-01-10 42 views
1

我有一個子節點TransactionScope在父節點TransactionSope內。子女TransactionScope在單數父母TransactionScope下創建,執行並提交多次。我如何取消阻塞父進程(插入Stmt)在TransactionScope中阻塞的進程(Insert Stmt)

父TransactionScope負責Insert單個記錄到數據庫中,同時等待第二組插入語句一個接一個地完成執行。

完成第一筆交易後,在第一次插入子交易時出現了問題。自從昨天開始進行了大量的研究之後,現在我會發現第二個插入的運行過程被第一個插入的過程阻塞。

我在運行程序時在sql server中運行了SP_WHO2,發現了這個問題。

同時,在插入過程中涉及的兩個表之間存在一對多關係。第一個插入在父表上執行操作,而第二個插入在子表上。

每當我刪除兩個表之間的關係約束時,事務會通過,但當約束位於時不會。

我的問題是如何取消阻塞第一個插入阻塞的第二個進程?

回答

1

如果每個TransactionScope使用不同的連接,那麼這是預期的和設計的。

現在,我不是在C#專家,但...

+0

+1非常有幫助。 – Tebo 2010-01-11 18:05:23