[FIX] SQL Server 2016 および 2017 でピボットまたは UN PIVOT を含むクエリを実行すると、アクセス違反が発生します。

適用対象: SQL Server 2016 DeveloperSQL Server 2016 EnterpriseSQL Server 2016 Enterprise Core

現象


SQL Server 2016 SP2 または SQL Server 2017 で累積更新プログラム 8を使用するとします。メタデータ (型など) を実行するクエリの情報を収集しようとすると、クエリが返す列、パラメータの種類、または推定実行プランの場合、クエリに PIVOT または UN PIVOT が含まれている場合、アクセス違反 (AV) が発生する場合があります。演算子。このような情報を収集する例は、は、次の制限に限定されません。
  • クエリが返す列の型を取得するには、sys.sp_describe_first_result_setを呼び出します。
  • sys.sp_describe_un宣言されていないパラメーターを呼び出して、パラメータの型を取得します。
  • SET SHOWPLAN (または Microsoft SQL Server 管理スタジオを使用) を呼び出して、推定実行プランを取得します。
さらに、次のようなダンプ ファイルがローカル インスタンスで生成されます。
Msg 596、レベル 21、状態 1、ライン番号
セッションが強制停止状態にあるため、実行を続行できません。
Msg 0、レベル 20、状態 0、ライン番号
現在のコマンドで重大なエラーが発生しました。結果がある場合は破棄する必要があります。

状態


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

解決方法


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

参照情報


マイクロソフトでソフトウェア更新プログラムの説明に使用する用語集を参照してください。