現象

IF EXISTSステートメントが含まれる sql クエリは、Microsoft sql Server 2012 で実行します。 IF EXISTSステートメントにsys.dm_db_index_physical_stats動的管理関数が含まれている場合は、次のようなアクセス違反が発生します。

日付 /時刻spid # * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *-* * * * *? spid #*日付time時刻 spid# *開始スタックダンプ:日付時刻 spid#* 日付時刻 spid #*日付時刻 spid#* 日付時刻spid #* 例外アドレス = 000007ff7da5614b モジュール (sqlmin + 000000000000614b)日付時刻spid # * 例外コード = c0000005 EXCEPTION_ACCESS_VIOLATION #日付時刻spid # * アクセス違反が発生しました。 510バイト-time日付時刻 spidtime# *SQL_query_code日付時刻spid #* end

注意事項

  • アクセス違反が発生した後にそのデータベースに対して DBCC CHECKDB コマンドを実行すると、エラーは報告されません。

  • 初めて SQL クエリを実行するときに、アクセス違反は発生しません。 ただし、その後で SQL クエリを実行するたびに、アクセス違反が発生します。

  • トレースフラグ3654を有効にした場合、アクセス違反は発生しません。 ただし、代わりにトレースで次のエラーが表示されます。

    場所: sosmemdbg: 2074Expression: FALSE SPID: 55Process ID: 16972Description: MEMOBJ_INDEXANALYSIS--Unfreed メモリが検出されました。Msg 3624、レベル20、状態1、行5A システムアサーションチェックが失敗しました。 詳細については、SQL Server エラーログを確認してください。 通常、アサーションエラーはソフトウェアバグまたはデータの破損が原因で発生します。 データベースが破損していないかどうかを確認するには、DBCC CHECKDB の実行を検討します。 セットアップ時に Microsoft にダンプを送信することに同意した場合は、ミニダンプが Microsoft に送信されます。 更新プログラムは、最新の Service Pack または QFE のテクニカルサポートから提供されている場合があります。 Msg 0、Level 20、State 0、Line 0A 重大なエラーが現在のコマンドで発生しました。 結果は破棄する必要があります。

解決方法

この問題を解決するには、 SQL Server 2012 SP1 の累積更新プログラム7をインストールします。 この問題は、この累積的な更新プログラムで最初に修正されました。

SQL Server 用の新しい累積更新プログラムには、以前の累積的な更新プログラムに含まれていたすべての修正プログラムとセキュリティ修正が含まれています。 詳細については、 SQL Server 2012 SP1 の最新の累積的な更新プログラムを確認してください。

状態

マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。

関連情報

Microsoft がソフトウェアの更新について説明する 用語 については、こちらを参照してください。

ヘルプを表示

スキルを磨く
トレーニングの探索
新機能を最初に入手
Microsoft Insider に参加する

この情報は役に立ちましたか?

言語の品質にどの程度満足していますか?
どのような要因がお客様の操作性に影響しましたか?

ご意見をいただきありがとうございます。

×