1

TransactionScope親の中に子供がいますTransactionSope。子TransactionScopeは、単一の親の下で複数回作成、実行、およびコミットされTransactionScopeます。

親TransactionScopeはInsert、挿入ステートメントの2番目のセットが1つずつ実行を完了するのを待っている間、データベースへの単一のレコードを処理します。

最初のトランザクションを完了した後、子トランザクションの最初の挿入時に問題が発生しました。昨日からたくさんの調査を行った結果、2番目の挿入が実行されているプロセスが最初の挿入のプロセスによってブロックされていることがわかりました。

SP_WHO2プログラムが実行されている状態でSQLServerで実行すると、これがわかりました。

一方、挿入プロセスに関与する2つのテーブルの間には1対多の関係があります。最初の挿入は親テーブルで操作を実行し、2番目の挿入は子テーブルで実行されます。

2つのテーブル間の関係制約を削除すると、トランザクションは実行されますが、制約がオンの場合は削除されません

私の質問は、最初の挿入によってブロックされている2番目のプロセスのブロックを解除する方法です。

4

1 に答える 1

1

各TransactionScopeが異なる接続を使用している場合、これは予期されたものであり、設計によるものです。

今、私はc#の専門家ではありませんが...

于 2010-01-10T19:40:48.300 に答える