現象
Microsoft SQL Server 2008 R2、SQL Server 2012、または SQL Server 2014 を使用していることを前提とします。 TOP N と ORDER BY を使ってクエリを実行すると、クエリは次のような assert エラーを返します。
場所: "qstopsrt": 384Expression: fFalseSPID: <SPID>プロセス id: <ProcessID>Location: <spid>プロセス id:< processid>Msg 3624、レベル20、状態1、行2a システムアサーションチェックが失敗しました (失敗した場合)。 詳細については、SQL Server エラーログを確認してください。 通常、アサーションエラーはソフトウェアバグまたはデータの破損が原因で発生します。 データベースが破損していないかどうかを確認するには、DBCC CHECKDB の実行を検討します。 セットアップ時に Microsoft にダンプを送信することに同意した場合は、ミニダンプが Microsoft に送信されます。 更新プログラムは、最新の Service Pack または QFE のテクニカルサポートから提供されている場合があります。 Msg 0、Level 20、State 0、Line 0A 重大なエラーが現在のコマンドで発生しました。 結果は破棄する必要があります。
注: この修正プログラムは、クエリプランに "Sort (Top N Sort)" が含まれている場合にも適用されることがあります。
原因
この問題は、クエリ実行エンジンで内部エラーが発生したために発生します。
解決方法
この問題は、SQL Server の次の累積的な更新プログラムで最初に修正されました。
SQL Server 2012 SP2 の累積更新プログラム1 /en-us/help/2976982
SQL Server 2014 の累積更新プログラム2 /en-us/help/2967546
SQL Server 2012 SP1 の累積更新プログラム10 /en-us/help/2954099
SQL Server 2008 R2 SP2 の累積更新プログラム12 /en-us/help/2938478
SQL Server 用の新しい累積更新プログラムには、以前の累積的な更新プログラムに含まれていたすべての修正プログラムとすべてのセキュリティ修正が含まれています。 SQL Server の最新の累積的な更新プログラムを確認します。
状態
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。