Applies To
SQL Server 2008 R2 Service Pack 2 SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Standard SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

徵狀

假設您使用的是 Microsoft SQL Server 2008 R2、SQL Server 2012 或 SQL Server 2014。 當您使用 TOP N 和 ORDER BY 執行查詢時,查詢會命中下列類似的 assert 失敗:

位置: "qstopsrt":384Expression: fFalseSPID: <spid>程式識別碼: <ProcessID>位置: qxcntxt:1052Expression: cref = = 0SPID: <SPID>進程識別碼: <ProcessID>Msg 3624、Level 20、State 1、Line 2a 系統斷言檢查已失敗。 如需詳細資訊,請參閱 SQL Server 錯誤記錄。 通常,宣告失敗是由軟體錯誤或資料損毀所導致。 若要檢查資料庫是否損毀,請考慮執行 DBCC CHECKDB。 如果您同意在安裝期間將轉儲傳送至 Microsoft,則會將迷你轉儲傳送至 Microsoft。 您可以從 Microsoft 最新 Service Pack 中的 Microsoft 取得更新,或從技術支援取得 QFE。 Msg 0,階層20,狀態0,行0A 在目前命令上發生嚴重錯誤。 結果(如果有的話)應該捨棄。

注意: 此修正程式也可能適用于查詢方案包含 [排序(前 N 個排序)]。

原因

出現這個問題的原因是查詢執行引擎中發生內部錯誤。

每個新的 SQL Server 累計更新都包含所有的修正程式,以及前一個累積更新中所包含的所有安全性修正程式。 查看 SQL Server 的最新累計更新:

狀態

Microsoft 已確認本篇文章<適用於>一節所列之 Microsoft 產品確實有上述問題。

Need more help?

Want more options?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。