Microsoft 會發佈 Microsoft SQL Server 2005、Microsoft SQL Server 2008 和 Microsoft SQL Server 2008 R2 修正程式作為一個可下載的檔案。 由於修正程式是累積的,因此每個新版本都包含先前的 SQL Server 2005、SQL Server 2008 或 SQL Server 2008 R2 版本中包含的所有 Hotfix 和所有安全性修正程式。
症狀
請考慮以下案例:
- 您可以在 Microsoft SQL Server 2005、Microsoft SQL Server 2008 或 Microsoft SQL Server 2008 R2 資料庫上啟用ALLOW_SNAPSHOT_ISOLATION選項。
- 您在資料表上執行版本設定作業。 例如,您更新資料表。
- 停用資料庫上的快照隔離層級。
- 您更新記錄上包含版本設定資訊的索引索引欄。
- 您重建資料表上的線上索引。
在此案例中,會發生判斷提示錯誤,且您會在 SQL Server 錯誤記錄檔中收到下列訊息:
注意
<Date><Time><spid> * BEGIN STACK DUMP:
<日期><時間<>spid> *<日期><時間><spid>
<日期><時間><spid> *
<日期><時間><spid> * 位置:AppendOnlyVerStoreMgr.cpp:731
<日期><時間><spid> * 運算式:0
<日期><時間<>spid> * SPID:<spid>
<日期><時間><spid> * 處理序識別碼:6328
<日期><時間><spid> * 描述:找不到版本記錄,且未配置頁面。 狀態 = 3
<日期><時間><spid> *
<日期><時間><spid> * 輸入緩衝區 170 位元組 -
<Date><Time<>spid> * ALTER INDEX <Table Name> ON INDEX <> REBUILD WITH (O
<日期><時間><spid> * NLINE = ON)
原因
發生此問題的原因是,新索引鍵記錄的版本設定資訊是從舊的索引鍵記錄中複製而來。 因此,重建索引時便會發生錯誤。
解決方式
累積更新資訊
SQL Server 2008 R2
此問題的修正程式最初在累積更新 5 中發行。 如需有關如何取得 SQL Server 2008 R2 的累積更新套件的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
2438347 SQL Server 2008 R2 的累積更新套件 5 注意:由於組建是累積的,因此每個新發行的修正程式都包含所有 Hotfix 和先前 SQL Server 2008 R2 修正程式版本中包含的所有安全性修正程式。 建議您考慮套用包含此 Hotfix 的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「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 Service Pack 4 的累積更新套件 1 注意 由於這些組建是累積的,因此每個新發行的修正程式都包含所有 Hotfix 和所有安全性修正程式,這些都包含在上一個 SQL Server 2005 修正程式版本中。 Microsoft 建議您考慮套用包含此 Hotfix 的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:
2485757 SQL Server 2005 Service Pack 4 發行之後所發行的 SQL Server 2005 組建Microsoft是為特定 SQL Server Service Pack 建立 SQL Server 2005 Hotfix。 您必須將 SQL Server 2005 Service Pack 4 Hotfix 套用至 SQL Server 2005 Service Pack 4 的安裝。 預設情況下,SQL Server Service Pack 中提供的任何 Hotfix 都會包含在下一個 SQL Server Service Pack 中。
SQL Server 2005 SP3
此問題的修正程式最初在累積更新 12 中發行。 如需有關如何取得此 SQL Server 2005 SP3 累積更新套件的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
2345449 累積更新套件 12 適用於 SQL Server 2005 Service Pack 3 注意: 由於組建是累積的,因此每個新發行的修正程式都包含所有 Hotfix 和先前的 SQL Server 2005 SP3 修正程式版本中包含的所有安全性修正程式。 建議您考慮套用包含此 Hotfix 的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「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 注意:由於這些組建是累積的,因此每個新發行的修正程式都包含所有 Hotfix 和所有安全性修正程式,這些修正程式都包含在上一個 SQL Server 2008 修正程式版本中。 Microsoft 建議您考慮套用包含此 Hotfix 的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:
970365 發行 SQL Server 2008 Service Pack 1 之後所發行的 SQL Server 2008 組建 Microsoft SQL Server 2008 會針對特定 SQL Server Service Pack 建立 Hotfix。 您必須將 SQL Server 2008 Service Pack 1 Hotfix 套用至 SQL Server 2008 Service Pack 1 的安裝。 預設情況下,SQL Server Service Pack 中提供的任何 Hotfix 都會包含在下一個 SQL Server Service Pack 中。
SQL Server 2008 Service Pack 2
此問題的修正程式最初在 SQL Server 2008 Service Pack 2 的累積更新 2 中發行。 如需有關此累積更新套件的詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:
2467239 SQL Server 2008 Service Pack 2 累積更新套件 2 注意:由於這些組建是累積的,因此每個新發行的修正程式都包含所有 Hotfix 和所有安全性修正程式,這些修正程式都包含在上一個 SQL Server 2008 修正程式版本中。 Microsoft 建議您考慮套用包含此 Hotfix 的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:
2402659 SQL Server 2008 Service Pack 2 發行之後所發行的 SQL Server 2008 組建Microsoft SQL Server會為特定 SQL Server Service Pack 建立 Hotfix。 您必須將 SQL Server 2008 Service Pack 2 Hotfix 套用至 SQL Server 2008 Service Pack 2 的安裝。 預設情況下,SQL Server Service Pack 中提供的任何 Hotfix 都會包含在下一個 SQL Server Service Pack 中。
因應措施
若要解決此問題,請將查詢中的 ONLINE 選項設為 OFF,以重建此資料庫的索引。
狀態
Microsoft 已確認這是「適用對象」一節中列出的 Microsoft 產品中的問題。
參考資料
如需有關線上索引作業的詳細資訊,請造訪下列 Microsoft 網站:
如需有關線上索引作業詳細資訊的詳細資訊,請造訪下列 Microsoft 網站: