您目前已離線,請等候您的網際網路重新連線

修正: 判斷提示已失敗或其他問題發生在當您對資料表執行 DML 查詢或檢視的兩個索引中有 SQL Server 2008

重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。

按一下這裡查看此文章的英文版本:2542225
Microsoft 會將單一可下載檔案 Microsoft SQL Server 2008 SP2 的修正程式。修正程式是累積的因為每個新版本包含所有的 hotfix,所有安全性修正程式是隨附於先前的 SQL Server 2008 SP2 的都修正版本。
徵狀
請考慮下列案例:
  • 您有一個資料表或檢視 Microsoft SQL Server 2008年中有兩個索引。第一個索引上有 AFTER 觸發程序。不過,第二個索引並沒有 AFTER 觸發程序在其上。
  • 在第二個索引中的某些記錄包含資料列版本的資訊。例如,您先前已啟用快照集隔離功能,若要啟用資料列版本。
  • 您嘗試執行 DML 查詢對資料表或針對檢視表。
在這個案例中,您可能會遇到下列問題之一:
  • 判斷提示失敗,且 SQL Server 的錯誤記錄檔會記錄下列錯誤:

    日期時間spid # 錯誤: 17066,嚴重性: 16,狀態: 1。
    日期時間spid # SQL Server 判斷提示: 檔案: pageref.cpp列 = 1332年無法判斷提示 = '0 = pageFull ='。這項錯誤可能是與時間相關。如果錯誤持續發生後重新執行的陳述式中,使用 DBCC CHECKDB 檢查的資料庫結構的完整性,或重新啟動伺服器,以確保不會損毀記憶體中資料結構。
    日期時間spid # 錯誤: 3624,嚴重性: 20,狀態: 1。
    日期時間 > spid # 系統判斷提示檢查失敗。請檢查 SQL Server 錯誤記錄檔以取得詳細資料。通常,判斷提示失敗被因為軟體錯誤或資料損毀。若要檢查資料庫損毀,請考慮執行 DBCC CHECKDB。如果您同意在安裝過程中傳送給 Microsoft 的傾印,迷你的傾印會傳送給 Microsoft。更新可能可從 Microsoft 取得最新的 Service Pack 或技術支援從 QFE。
  • 查詢會傳回不正確的結果。
  • 發生資料損毀問題。
發生的原因
之所以發生這個問題,是因為 SQL Server 查詢最佳化器中的缺失。當您執行 DML 查詢時,會產生觸發程序、 設定不正確的資料列版本旗標,和 SQL Server 儲存引擎會使用舊的資料列版本資訊。因此,可能會發生 「 徵狀 〉 一節所述的問題。
解決方案

累積更新資訊

SQL Server 2008 Service Pack 2 (SP2) 累積更新套件 6

累積更新 6 中初次發行這個問題的修正程式。如需有關如何取得此累積更新套件的 SQL Server 2008 Service Pack 2 的詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
2582285 SQL Server 2008 Service Pack 2 的累積更新套件 6
附註 因為組建是累計的每個新的修正版本包含所有的 hotfix,所有安全性修正程式所隨附之前 SQL Server 2008 Service Pack 2 都修正版本。我們建議您考慮將套用最新的修正程式版本,其中包含此 hotfix。如需詳細資訊,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
2402659 SQL Server 2008 SQL Server 2008 Service Pack 2 已發行之後所發行的組建
狀況說明
Microsoft 已確認這是 「 套用 」 一節所列的 Microsoft 產品中的問題。

警告:本文為自動翻譯

內容

文章識別碼:2542225 - 最後檢閱時間:10/07/2011 05:51:00 - 修訂: 2.0

Microsoft SQL Server 2008 Enterprise

  • kbqfe kbfix kbexpertiseadvanced kbsurveynew kbmt KB2542225 KbMtzh
意見反應
script>");