KB3103998 - FIX: 2014 年に WITH CHECK OPTION を使用するビューで INSERT、UPDATE、または MERGE ステートメントを実行した場合のアクセス違反SQL Server

適用先
SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

現象

WITH CHECK OPTION 構文で定義されているビューで INSERT、UPDATE、または MERGE ステートメントを実行すると、ダンプ ファイルが生成され、Microsoft SQL Serverは次のエラー メッセージをアプリケーション ログに記録します。

< timestamp> サーバー SPID <#> を使用したセッションからのユーザー要求によって致命的な例外が生成されました。 SQL Serverはこのセッションを終了しています。 ログ ディレクトリで生成されたダンプを使用して、製品サポート サービスに問い合わせてください。

< timestamp> spid<#> SqlDumpExceptionHandler: プロセス <#> 生成された致命的な例外 c0000005 EXCEPTION_ACCESS_VIOLATION。 SQL Serverはこのプロセスを終了しています

解決策

累積的な更新情報

この問題は、SQL Serverの次の累積的な更新プログラムで最初に修正されました。

推奨事項: SQL Serverの最新の累積的な更新プログラムをインストールする

SQL Serverの各新しい累積的な更新プログラムには、すべての修正プログラムと、以前の累積的な更新プログラムに含まれていたすべてのセキュリティ修正プログラムが含まれています。 SQL Serverの最新の累積的な更新プログラムをダウンロードしてインストールすることをお勧めします。

      

追加情報

この問題は、WITH CHECK OPTION 構文を使用して定義されたビューで INSERT、UPDATE、または MERGE ステートメントを実行する場合にのみ発生します。 次に例を示します。

UPDATE "<ViewName>" SET
"<ColumnA>" = <NewValue> WHERE 
("<ColumnB>" = <ColumnBValue>)

回避策

  • WITH CHECK OPTION 構文を使用して定義されたビューの基になるテーブルに対して、INSERT、UPDATE、または MERGE ステートメントを実行します。
  • 該当するビューを変更または再作成して、WITH CHECK OPTION 構文が使用されていないことを確認します。

状態

Microsoft は、これが "適用対象" セクションに記載されている Microsoft 製品の問題であることを確認しました。