KB4015561 - 修正: SQL Server で END TRY セクションを実行する前にストアド プロシージャが削除された場合のアクセス違反

適用先
SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Enterprise Core SQL Server 2012 Standard SQL Server 2012 Service Pack 3 SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2016 Service Pack 1 SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Service Pack 2 - duplicate (do not use)

現象

たとえば次のようなシナリオを考えてみます。

• TRY を含むストアド プロシージャがあります... Microsoft SQL Server での CATCH コンストラクト。
ストアドプロシージャには WITH RESULT SETS 句が含まれており、sp_prepare または sp_execute メソッドによって実行されます。
• END TRY セクションを実行する前に、ストアド プロシージャが削除されます。 これにより、"ストアド プロシージャ <SP_Name> が見つかりませんでした" のような 2812 エラーが発生します。

この状況では、SQL Server がクラッシュし、アクセス違反 (AV) を生成し、最終的にサーバーのシャットダウンにつながる可能性があります。 さらに、ダンプ ファイルが SQL Server エラー ログ フォルダーに生成されます。

解決策

この問題は、次の SQL Server の累積的な更新プログラムで修正されています。

SQL Server 2016 RTM の累積的な更新プログラム 7

SQL Server 2016 SP1 の累積的な更新プログラム 3

SQL Server 2014 SP2 の累積的な更新プログラム 6

SQL Server 2014 SP1 の累積的な更新プログラム 13

SQL Server 2012 SP3 の累積的な更新プログラム 9

SQL Server の累積的な更新プログラムについて:

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

SQL Server 2016 の最新の累積的な更新プログラム

SQL Server 2014 の最新の累積的な更新プログラム

SQL Server 2012 の最新の累積的な更新プログラム

状態

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

参考資料

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