web-dev-qa-db-ja.com

エラー3930の原因となる正確なステートメントを見つける

最近、SQL Serverログにエラーが表示されています。

コード:3930説明:「現在のトランザクションはコミットできず、ログファイルに書き込む操作をサポートできません。トランザクションをロールバックしてください。」

SQLプロファイラーを使用して、このエラーの原因となっている正確なステートメントを見つけるにはどうすればよいですか? SQLプロファイラのどの列がSQLエラーログの「メッセージ」列を埋めますか?残念ながら、これは本番環境でのみ取得しているため、可能な限り最軽量のトレースでトレースを実行する必要があります。問題のあるコードをキャプチャするために何を勧めますか?

4
SomeGuy

プロファイラーで[すべてのイベントを表示]をクリックし、エラーと警告のリストに移動します。例外とユーザーエラーメッセージを確認できるはずです。 Exceptionクラスは実際のエラーを表示し、User Error Messageは表示されたメッセージを表示します(たとえば、「...の近くに不正な構文」など)。

エラーログに記録されるメッセージについて言及します。エラーメッセージカテゴリにはErrorLogイベントもあるので、これも含めても問題ありません。

そのときにコマンドが実行されるようにするには、SQL:BatchStartingと、場合によってはSQL:BatchCompletedも含める必要があります。

Remus Rusanuの この種の以前の質問への回答 を見て、問題の解決に役立つかどうかを確認することもできます。

6
Kevin Feasel