0

SQL Server 2008 R2 のテーブルでいくつかの変更を行う ASP.NET Web アプリケーションがあります。このテーブルには、同じデータベース サーバー上の別のデータベース内の別のテーブルを更新するトリガーがあります。

変更を保存すると、次のエラーが発生します: - エラー メッセージ: 基になるプロバイダーがコミットに失敗しました。- InnerException: この SqlTransaction は完了しました。使用できなくなります。

また、データベース ユーザーが他のデータベースに接続できるようにすることもできません。

誰かが私がこれを機能させる方法を知っていますか?

4

1 に答える 1

0

トリガーは Entity Framework とは関係ありません。

その変更がどこから来たかに関係なく、テーブルに変更が加えられると、トリガーが起動します。

これはおそらく権利の問題です。システムは、最初のデータベースへの接続に使用されたセキュリティ コンテキストを使用して、2 番目のデータベースに変更を加えようとしています。トリガーによって引き起こされた変更が失敗すると、同じトランザクション内のすべてが失敗します。

トランザクションで 2 つのデータベースにアクセスしているため、MSDTC を使用しています。MSDTC が開始されていることと、それに対する権限があることを確認してください。

于 2012-04-05T13:39:16.370 に答える