Microsoft 將 Microsoft SQL Server 2008 SP2 或 Microsoft SQL Server 2008 R2 修正為一個可下載的檔案。 因為修正程式是累加的,所以每個新發行版本本都包含舊版 SQL Server 2008 SP2 或 SQL Server 2008 R2 修正程式版本中所包含的所有熱修復程式及所有安全修正程式。
徵狀
請試想下列案例:
-
您的資料表或視圖在 Microsoft SQL Server 2008 或 Microsoft SQL Server 2008 R2 中有兩個索引。 第一個索引後面有觸發程式。 不過,第二個索引沒有後面的觸發程式。
-
第二個索引中的部分記錄包含資料列的版本資訊。 例如,您先前已啟用快照隔離功能來啟用資料行版本。
-
您嘗試針對資料表或視圖執行 DML 查詢。
在這種情況下,您可能會遇到下列其中一種問題:
-
出現宣告失敗,且在 SQL Server 錯誤記錄中記錄了下列錯誤:
日期時間spid # 錯誤:17066,嚴重性:16,狀態:1。日期時間Spid # SQL Server Assertion:檔案: Pageref,line = 1332 失敗斷言 = ' 0 = = pageFull」。 此錯誤可能是與時間有關的。 如果在重新執行語句後發生錯誤,請使用 DBCC CHECKDB 來檢查資料庫的結構完整性,或重新開機伺服器以確保記憶體中資料結構未損毀。日期時間spid # 錯誤:3624,嚴重性:20,狀態:1。日期時間 > spid # 系統斷言檢查已失敗。 如需詳細資訊,請參閱 SQL Server 錯誤記錄。 通常,宣告失敗是由軟體錯誤或資料損毀所導致。 若要檢查資料庫是否損毀,請考慮執行 DBCC CHECKDB。 如果您同意在安裝期間將轉儲傳送至 Microsoft,則會將迷你轉儲傳送至 Microsoft。 您可以從 Microsoft 最新 Service Pack 中的 Microsoft 取得更新,或從技術支援取得 QFE。
-
查詢會傳回不正確的結果。
-
發生資料損毀問題。
原因
這個問題是由 SQL Server 查詢優化程式中的缺陷所造成。 當您執行產生觸發程式的 DML 查詢時,會設定不正確的列版本標誌,且 SQL Server 儲存引擎會使用舊的列版本資訊。 因此,在「症狀」一節中所述的問題就會發生。
解決方案
累積更新資訊
SQL Server 2008 R2
此問題的修正程式是在累積更新10中第一次發行。如需有關如何取得 SQL Server 2008 R2 累積更新套件的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:
2591746 SQL Server 2008 R2 的累積更新套件10 注意: 因為組建是累加的,所以每個新的修正程式版本都包含先前 SQL Server 2008 R2 修正版本中所包含的所有修復程式及所有安全性修正程式。 我們建議您考慮套用包含此熱修復程式的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:
981356 在發行 SQL Server 2008 R2 之後發行的 SQL Server 2008 R2 組建
SQL Server 2008 R2 Service Pack 1
此問題的修正程式是在 SQL Server 2008 R2 Service Pack 1 的累積更新3中第一次發行。如需如何取得此累積更新套件的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:
2591748 SQL Server 2008 R2 Service Pack 1 的累積更新套件3注意: 因為組建是累加的,所以每個新的修正程式版本都包含先前 SQL Server 2008 R2 修正版本中所包含的所有修復程式及所有安全性修正程式。 我們建議您考慮套用包含此熱修復程式的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:
2567616 在發行 SQL Server 2008 R2 Service Pack 1 之後發行的 SQL Server 2008 R2 組建
SQL Server 2008 Service Pack 2 (SP2)累計更新套件6
此問題的修正程式是在累積更新6中第一次發行。如需有關如何取得適用于 SQL Server 2008 Service Pack 2 的累積更新套件的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:
2582285 SQL Server 2008 的累積更新套件 6 Service Pack 2注意: 因為組建是累加的,所以每個新的修正程式版本都包含先前 SQL Server 2008 Service Pack 2 的修正版本中所包含的所有修復程式及所有安全性修正程式。 我們建議您考慮套用包含此熱修復程式的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:
2402659 在發行 SQL Server 2008 Service Pack 2 之後發行的 SQL Server 2008 組建
狀態
Microsoft 已確認本篇文章<適用於>一節所列之 Microsoft 產品確實有上述問題。