ADO.NETを使用するC#アプリケーションとSNAPSHOTトランザクション分離レベルを持つSQLサーバーがあります。これは「そのまま」であり、残念ながら変更できません。スナップショット接続が破棄された後で、リンクサーバーの呼び出しが失敗する
リンクされたサーバーにstuffを挿入する必要があります。
は、我々は(問題を説明するために減少した)次のコードを実行します。
// Create a snapshot Transaction and close the connection
using (var con = new SqlConnection(myConStr))
{
con.BeginTransaction(TransactionLevel.Snapshot);
}
// do something with a linked server
using (var con = new SqlConnection(myConStr))
{
using (var cmd = con.CreateCommand()
{
cmd.CommandText = "insert into LinkedServer.SomeDb..Table ...";
cmd.ExecuteNonQuery();
}
}
我々が得るの
「リモートアクセスは、トランザクションのためにサポートされていないリンクサーバーに何かを挿入しようと例外ができます分離レベル "SNAPSHOT" '
私は接続を開いて、それが破棄されていることを確認します(すべてのトランザクションをクリアします)。リンクされたサーバーコールに2番目の接続を使用します。
一般的なSQLを使用してSSMSで処理を実行しているようです。
私たちは何が欠けていますか?それを行う適切な方法はありますか?
正しい方向のヒントありがとうございます。