2011-03-17 12 views
0

データベースとやりとりする.NETアプリケーションを開発しています。ある方法では、私はtable1のデータを使用してtable2の更新値に行くためにThreading.Threadを起動し、変更を完了した後でtable1のいくつかの値を変更します。トランザクションの実行中にデータベースの変更にアクセスする

このスレッドは変更された値を読み取りますか?トランザクションが開始される前と同じようにデータをロードしますか?

答えて

2

2番目のスレッドがトランザクションが開始された同じ接続/セッションを使用しているかどうかによって異なります。そうであれば、そのトランザクション中にこれまでに行った変更を見ることができます。それが異なる接続である場合、それらの変更がコミットされるまでそれは目に見えません。

2

RepeatableReadまたはReadUncommittedを使用すると、2番目のスレッドのトランザクションのトランザクション分離レベルによって、table1からコミットされていないデータを読み取ることができます。トランザクション分離レベルの

さらに詳しい情報:

IsolationLevel Enumeration

Set Transaction Isolation Level (Transact-SQL)

異なるが、あなたはデータがそれを読んで、table2のを更新する前にTABLE1に書き込まれていることを確認する方法を疑問があるが、これが依存.NETアプリケーションの実装では

関連する問題