KB2728534-修正:當您在 SQL Server 2008 R2 或 SQL Server 2012 的資料行上重新建立非叢集索引時,出現「系統斷言檢查失敗」錯誤。

Microsoft 將 Microsoft SQL Server 2008 R2 Service Pack 1 修正為一個可下載的檔案。 因為修正程式是累加的,所以每個新發行版本本都包含舊版 SQL Server 2008 R2 Service Pack 1 修正版本中所包含的所有修復程式及所有安全性修正程式。

徵狀

請試想下列案例:

  • 您在 Microsoft SQL Server 2008 R2 或 Microsoft SQL Server 2012 中的資料行上建立非叢集索引。

  • 您刪除非叢集索引。

  • 您變更了建立非叢集索引之欄的排序規則。

  • 您會在欄上重新建立非叢集索引。

在此案例中,您收到下列錯誤訊息:

位置: sobuild c:3392Expression: CompareRow (rightPageRow、* m_pSEBindings、keyCnt、* pHobtAccess、PAGE_LEAF_LEVEL) SPID: 53Process ID: 3268Msg 3624、Level 20、State 1、Line 1A 系統斷言檢查失敗。 如需詳細資訊,請參閱 SQL Server 錯誤記錄。 通常,宣告失敗是由軟體錯誤或資料損毀所導致。 若要檢查資料庫是否損毀,請考慮執行 DBCC CHECKDB。 如果您同意在安裝期間將轉儲傳送至 Microsoft,則會將迷你轉儲傳送至 Microsoft。 您可以從 Microsoft 最新 Service Pack 中的 Microsoft 取得更新,或從技術支援取得 QFE。 Msg 0,階層20,狀態0,行0A 在目前命令上發生嚴重錯誤。 結果(如果有的話)應該捨棄。

注意當您執行在查詢執行方案中使用並行度的查詢時,就會發生此問題。

原因

發生這個問題的原因是,儲存引擎中繼資料中的排序規則識別碼沒有與中繼資料中的排序規則識別碼同步處理。

解決方案

累積更新資訊

SQL Server 2012 的累積更新套件 1 Service Pack 1

此問題的修正程式是在累積更新1中第一次發行。如需有關如何取得適用于 SQL Server 2012 Service Pack 1 的累積更新套件的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:

2765331 SQL Server 2012 的累積更新套件 1 Service Pack 1注意: 因為組建是累加的,所以每個新的修正程式版本都包含先前 SQL Server 2012 修正版本中所包含的所有修復程式及所有安全性修正程式。 我們建議您考慮套用包含此熱修復程式的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:

2772858 在發行 SQL Server 2012 Service Pack 1 之後發行的 SQL Server 2012 組建

SQL Server 2008 R2 Service Pack 2

此問題的修正程式是在累積更新3中第一次發行。如需有關如何取得適用于 SQL Server 2008 R2 Service Pack 2 之累積更新套件的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:

2754552 SQL Server 2008 R2 Service Pack 2 的累積更新套件3 注意: 因為組建是累加的,所以每個新的修正程式版本都包含舊版 SQL Server 2008 R2 Service Pack 2 (修正版本)所包含的所有修復程式及所有安全修正程式。 我們建議您考慮套用包含此熱修復程式的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:

2730301 在發行 SQL Server 2008 R2 Service Pack 2 之後發行的 SQL Server 2008 R2 組建

SQL Server 2012

此問題的修正程式是以累積更新4第一次發行。如需如何取得此 SQL Server 2012 累積更新套件的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:

2758687 SQL Server 2012 的累積更新套件4 注意: 因為組建是累加的,所以每個新的修正程式版本都包含先前 SQL Server 2012 修正版本中所包含的所有修復程式及所有安全性修正程式。 我們建議您考慮套用包含此熱修復程式的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:

2692828 在發行 SQL Server 2012 之後發行的 SQL Server 2012 組建

SQL Server 2008 R2 Service Pack 1

此問題的修正程式是在累積更新8中第一次發行。如需有關如何取得適用于 SQL Server 2008 R2 Service Pack 1 之累積更新套件的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:

2723743 SQL Server 2008 R2 Service Pack 1 的累積更新套件8注意: 因為組建是累加的,所以每個新的修正程式版本都包含先前 SQL Server 2008 R2 Service Pack 1 修正版本中所包含的所有修復程式及所有安全修正程式。 我們建議您考慮套用包含此熱修復程式的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:

2567616 在發行 SQL Server 2008 R2 Service Pack 1 之後發行的 SQL Server 2008 R2 組建

因應措施

若要解決此問題,請將 MAXDOP = 1 查詢提示選項新增到您用來重新建立非叢集索引的查詢中。

狀態

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

Need more help?

Expand your skills
Explore Training
Get new features first
Join Microsoft Insiders

Was this information helpful?

Thank you for your feedback!

Thank you for your feedback! It sounds like it might be helpful to connect you to one of our Office support agents.

×