Applies ToSQL Server 2008 SQL Server 2008 R2 Service Pack 1

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

徵狀

請試想下列案例:

  • 您有一個用戶端應用程式在 Microsoft SQL Server 2008 R2 或 Microsoft SQL Server 2012 中執行查詢。

  • 查詢在路徑模式中使用FOR XML子句。

  • 查詢會執行 NO_BROWSETABLE 的 SET 命令,以啟用 NO_BROWSETABLE 設定。

在這種情況下,查詢不會執行。 此外,您會在用戶端應用程式上收到下列錯誤訊息,並會在 SQL 錯誤記錄中產生一個小型轉儲檔案。

Msg 0、Level 11、State 0、Line 0A 在目前命令上發生嚴重錯誤。 結果(如果有的話)應該捨棄。Msg 0,階層20,狀態0,行0A 在目前命令上發生嚴重錯誤。 結果(如果有的話)應該捨棄。

注意事項

  • 不會編譯用來執行查詢的查詢方案。

  • 啟動 SQL Server 設定檔時,沒有出現失敗的查詢的探測器事件。

  • 發生這個問題時,SQL Server 服務會間歇性地關閉。

原因

發生此問題的原因是 SQL Server algebrizer 中的內部錯誤。 當 SQL Server 嘗試新增從 join 運算子節點的一端提取的資料行到 join 運算子節點的另一側時,就會發生此問題。 因此,會建立不正確 algebrizer 樹,因為 join 運算子節點的一側所定義的資料行在聯結運算子節點的另一側不會顯示。

解決方案

累積更新資訊

SQL Server 2012

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

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

2692828 在發行 SQL Server 2012 之後發行的 SQL Server 2012 組建 您必須將 SQL Server 2012 修補程式套用至 SQL Server 2012 的安裝。

SQL Server 2008 R2 Service Pack 2

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

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

2730301 在發行 SQL Server 2008 R2 Service Pack 2 之後發行的 SQL Server 2008 R2 組建

SQL Server 2008 R2 SP1 的累積更新套件7

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

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

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

狀態

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

因應措施

若要暫時略過這個問題,請使用下列其中一個方法。

方法 1

請勿在路徑模式中使用FOR XML子句。

方法 2

執行下列命令以停用 [ NO_BROWSETABLE ] 設定:

將 NO_BROWSETABLE 關閉

參考

如需瀏覽模式的詳細資訊,請移至下列 MSDN 網站:

瀏覽模式的一般資訊如需有關如何使用 PATH 模式搭配 FOR XML 子句的詳細資訊,請移至下列 MSDN 網站:

如何將路徑模式與 FOR XML 子句搭配使用

Need more help?

Want more options?

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

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