2009-06-25 12 views

答えて

3

ADO.NETでは、違いはありません。これは、SqlTransactionオブジェクトの場合、トランザクションがすでにサーバー上でロールバックされている場合、Commitメソッドが「失敗する」とMSDNで明示的に述べられています。

また、SQL Serverプロファイラは、接続で.BeginTransactionを実行するとすぐに、「SET TRANSACTION ISOLATION LEVEL READ COMMITTED; BEGIN TRAN」と表示します。

ただし、ADO(.NETではなく)ではありません。これは、事実上ネストされたトランザクション(クライアントの内部にネストされたサーバートランス)を使って素敵なシナリオを可能にしていました。私はそれをたくさん使ってきましたが、その場合の「クライアント取引」が何であるかを正確に定義することはできません。

2

複数のストアドプロシージャを連続して呼び出してロールバックできるようにする場合は、SqlConnection.BeginTransaction()を使用してコードからトランザクションを管理する必要があります。それ以外の場合は同じです。

関連する問題