Microsoft 發佈 Microsoft SQL Server 2005、Microsoft SQL Server 2008 及 Microsoft SQL Server 2008 R2 修正為一個可下載的檔案。 因為修正程式是累加的,所以每個新發行版本本都包含舊版 SQL Server 2005、SQL Server 2008 或 SQL Server 2008 R2 版本中所包含的所有熱修復程式及所有安全性修正程式。
徵狀
請試想下列案例:
-
您可以在 Microsoft SQL Server 2005、Microsoft SQL Server 2008 或 Microsoft SQL Server 2008 R2 資料庫上啟用 [ ALLOW_SNAPSHOT_ISOLATION ] 選項。
-
您會在資料表上執行版本設定作業。 例如,您更新資料表。
-
您停用資料庫上的快照隔離層級。
-
您更新包含版本資訊之記錄的索引鍵欄。
-
您在表格上重建連線索引。
在這種情況下,會發生斷言錯誤,而且您會在 SQL Server 錯誤記錄中收到下列訊息:
<日期><時間> <SPID> * 開始堆疊轉儲: <日期><時間> <spid> * <日期><時間> <spid> <日期><> <spid> * <日期><時間> <spid> * 位置: AppendOnlyVerStoreMgr: 731> <0 日期><時間> <spid> * 運算式: 0> <6 日期><時間> <spid> * spid: <spid><日期><> <spid> * 說明: 6328> <0><日期> <時間>spid * 描述:找不到版本記錄,且未指派頁面。 狀態 = 3<日期><時間> <spid> * <日期><時間> <spid> * 輸入緩衝區170位元組-<日期><> < Spid > *變更索引 <的> <> 重建> <2><> <時間>
原因
之所以會發生這個問題,是因為索引鍵的新記錄的版本設定資訊是從索引鍵的舊記錄複製。 因此,重建索引時會發生錯誤。
解決方案
累積更新資訊
SQL Server 2008 R2
此問題的修正程式是在累積更新5中第一次發行。如需有關如何取得 SQL Server 2008 R2 累積更新套件的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:
2438347 SQL Server 2008 R2 的累積更新套件5 注意: 因為組建是累加的,所以每個新的修正程式版本都包含先前 SQL Server 2008 R2 修正版本中所包含的所有修復程式及所有安全性修正程式。 我們建議您考慮套用包含此熱修復程式的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:
981356 在發行 SQL Server 2008 R2 之後發行的 SQL Server 2008 R2 組建
SQL Server 2005 Service Pack 4
此問題的修正程式是在 SQL Server 2005 Service Pack 4 的累積更新1中第一次發行。如需此累積更新套件的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:
2464079 SQL Server 2005 的累積更新套件 1 Service Pack 4注意: 因為組建是累加的,所以每個新的修正程式版本都包含先前 SQL Server 2005 修正版本中所包含的所有修復程式及所有安全性修正程式。 Microsoft 建議您考慮套用包含此熱修復程式的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:
2485757 在發行 SQL Server 2005 Service Pack 4 之後發行的 SQL Server 2005 組建 Microsoft SQL Server 2005 修復程式是針對特定的 SQL Server service pack 建立的。 您必須將 SQL Server 2005 Service Pack 4 修復程式套用至 SQL Server 2005 Service Pack 4 的安裝。 根據預設,SQL Server service pack 中提供的任何熱修復程式都包含在下一個 SQL Server service pack 中。
SQL Server 2005 SP3
此問題的修正程式是在累積更新12中第一次發行。如需有關如何取得 SQL Server 2005 SP3 的累積更新套件的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:
2345449 SQL Server 2005 的累積更新套件 12 Service Pack 3 注意: 因為組建是累加的,所以每個新的修正程式版本都包含先前 SQL Server 2005 SP3 修正版本中所包含的所有修復程式及所有安全修正程式。 我們建議您考慮套用包含此熱修復程式的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:
960598 在發行 SQL Server 2005 Service Pack 3 之後發行的 SQL Server 2005 組建
SQL Server 2008 Service Pack 1
此問題的修正程式是在 SQL Server 2008 Service Pack 1 的累積更新11中第一次發行。 如需此累積更新套件的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:
2413738 SQL Server 2008 Service Pack 1 的累積更新套件11注意: 因為組建是累加的,所以每個新的修正程式版本都包含先前 SQL Server 2008 修正版本中所包含的所有修復程式及所有安全性修正程式。 Microsoft 建議您考慮套用包含此熱修復程式的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:
970365 在發行 SQL Server 2008 Service Pack 1 之後發行的 SQL Server 2008 組建Microsoft SQL Server 2008 修復程式是針對特定的 SQL Server service pack 建立的。 您必須將 SQL Server 2008 Service Pack 1 修補程式套用至 SQL Server 2008 Service Pack 1 的安裝。 根據預設,SQL Server service pack 中提供的任何熱修復程式都包含在下一個 SQL Server service pack 中。
SQL Server 2008 Service Pack 2
此問題的修正程式是在 SQL Server 2008 的累積更新2(Service Pack 2)中第一次發行。如需此累積更新套件的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:
2467239 SQL Server 2008 的累積更新套件 2 Service Pack 2注意: 因為組建是累加的,所以每個新的修正程式版本都包含先前 SQL Server 2008 修正版本中所包含的所有修復程式及所有安全性修正程式。 Microsoft 建議您考慮套用包含此熱修復程式的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:
2402659 在發行 SQL Server 2008 Service Pack 2 之後發行的 SQL Server 2008 組建 Microsoft SQL Server 2008 修復程式是針對特定的 SQL Server service pack 建立的。 您必須將 SQL Server 2008 Service Pack 2 修補程式套用至 SQL Server 2008 Service Pack 2 的安裝。 根據預設,SQL Server service pack 中提供的任何熱修復程式都包含在下一個 SQL Server service pack 中。
因應措施
若要解決此問題,請將查詢中的 [ 線上 ] 選項設定為 [ 關閉 ],以重建此資料庫的索引。
狀態
Microsoft 已確認本篇文章<適用於>一節所列之 Microsoft 產品確實有上述問題。
參考
如需線上索引作業的詳細資訊,請造訪下列 Microsoft 網站:
如需線上索引作業詳細資料的詳細資訊,請造訪下列 Microsoft 網站: