使用 Microsoft 登入
登入或建立帳戶。
您好:
選取其他帳戶。
您有多個帳戶
選擇您要用來登入的帳戶。

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

徵狀

請試想下列案例:

  • 您在執行 Microsoft SQL Server 2008 或 Microsoft SQL Server 2008 R2 的電腦上建立連結伺服器。 連結伺服器指向遠端伺服器上的 OLE DB 資料來源。

  • 您執行的分散式查詢使用連結伺服器上的某些資料物件。

  • 您在遠端伺服器上執行一些作業,而這些作業會在資料物件上造成超過五個架構版本更新。 例如,您在遠端伺服器上重建資料表的索引,以更新連結伺服器上之資料表的架構版本。注意: 您會在下一次執行查詢之前執行這些作業。

  • 您可以在連結伺服器上再次執行分散式查詢。

在這種情況下,不會重新編譯查詢,而且您會收到類似以下的錯誤訊息:

伺服器: Msg 7359,階層等級編號,狀態狀態編號,行號連結伺服器「連結伺服器名稱」的 OLE DB 提供者「提供者名稱」已在編譯時間("編譯時間")和執行時間("執行時間")之間,報告 [連結資料表名稱] 的架構版本的變更。

注意事項

  • [提供者名稱] 是 OLE DB 提供者名稱的預留位置。

  • [連結資料表名稱] 是在連結伺服器上查詢的資料表名稱的預留位置。

  • 下列語句通常可以變更架構版本:

    • ALTER TABLE

    • 建立索引

    • 刪除索引

    • DBCC 重新編制索引

原因

之所以會發生此問題,是因為已達到針對查詢重新編譯的限制。 對架構進行變更時,會將快取中的部分物件刪除,且查詢需要重新編譯的操作。 不過,如果有超過五個更新架構版本的變更,就會達到重新編譯的上限。 因此,在「症狀」一節中提到的問題就會發生。

解決方案

累積更新資訊

SQL Server 2008 R2

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

2633145 SQL Server 2008 R2 的累積更新套件11 注意: 因為組建是累加的,所以每個新的修正程式版本都包含先前 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 的累積更新4中第一次發行。如需如何取得此累積更新套件的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:

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

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

SQL Server 2008 Service Pack 3

此問題的修正程式會在 SQL Server 2008 Service Pack 3 的累積更新1中首次發行。如需此累積更新套件的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:

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

2629969 在發行 SQL Server 2008 Service Pack 3 之後發行的 SQL Server 2008 組建 Microsoft SQL Server 2008 修復程式是針對特定的 SQL Server service pack 建立的。 您必須將 SQL Server 2008 Service Pack 3 修復程式套用至 SQL Server 2008 Service Pack 3 的安裝。 根據預設,SQL Server service pack 中提供的任何熱修復程式都包含在下一個 SQL Server service pack 中。

SQL Server 2008 SP2 累積更新套件6

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

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

2402659 在發行 SQL Server 2008 SP2 之後發行的 SQL Server 2008 組建

因應措施

若要解決這個問題,請使用下列其中一個方法:

  • 執行 DBCC FREEPROCCACHE("Plan_Handle")語句。如需 Plan_Handle 參數的詳細資訊,請造訪下列 MSDN 網站:

    Plan_Handle 參數的一般資訊

  • 執行 sp_refreshView 的 [ViewName] 儲存程式。注意: 如果已安裝 SQL Server 2008 SP2 的累積更新套件3,此方法則無法運作。

狀態

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

需要更多協助嗎?

想要其他選項嗎?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。

社群可協助您詢問並回答問題、提供意見反應,以及聆聽來自具有豐富知識的專家意見。

這項資訊有幫助嗎?

您對語言品質的滿意度如何?
以下何者是您會在意的事項?
按下 [提交] 後,您的意見反應將用來改善 Microsoft 產品與服務。 您的 IT 管理員將能夠收集這些資料。 隱私權聲明。

感謝您的意見反應!

×