Microsoft 將 Microsoft SQL Server 2008 R2 發佈為一個可下載的檔案。 因為修正程式是累加的,所以每個新發行版本本都包含舊版 SQL Server 2008 R2 修正程式版本中所包含的所有修復程式及所有安全性修正程式。
徵狀
在 Microsoft SQL Server 2008 R2 中,當您執行使用 APPLY 運算子的複雜查詢時,可能會收到不一致的結果。 注意: 如果您在查詢中使用 [強制順序 查詢] 提示,就會在此案例中收到正確的結果。
原因
發生這個問題的原因是,查詢最佳化工具針對查詢選取了不正確的執行方案。 查詢優化程式會針對執行方案的物理運算子中的多個資料行,處理 GROUP BY謂詞。 不過,運算子會輸出輸出清單中的所有群組資料行,並不會將所有這些資料列組成群組。 因此,查詢可能會傳回不正確的結果。 注意: " 資料流程集合 運算子] 是一個實體運算子的範例。例如,查詢優化程式會在內部根據下表,以 ColA、ColB子句產生群組:
ColA |
ColB |
---|---|
0 |
0 |
0 |
1 |
查詢優化程式可能會不正確地產生會傳回ColA 和 ColB資料行的執行方案。 這些資料行會依據輸出清單中的 [ ColA ] 資料行進行分組。 在這個範例中,如果ColA欄中的值為0,則查詢在ColB資料行中可能會隨機傳回0或1 。
解決方案
累積更新資訊
SQL Server 2008 R2
此問題的修正程式是在累積更新5中第一次發行。如需有關如何取得 SQL Server 2008 R2 累積更新套件的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:
2438347 SQL Server 2008 R2 的累積更新套件5 注意: 因為組建是累加的,所以每個新的修正程式版本都包含先前 SQL Server 2008 R2 修正版本中所包含的所有修復程式及所有安全性修正程式。 我們建議您考慮套用包含此熱修復程式的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:
981356 在發行 SQL Server 2008 R2 之後發行的 SQL Server 2008 R2 組建
狀態
Microsoft 已確認<適用於>一節中所列的 Microsoft 產品確實有上述問題。
其他相關資訊
若要確認您遇到這個問題,請檢查有問題查詢的執行方案,然後檢查群組運算子。 例如,檢查串流匯總運算子、雜湊匯總運算子、distinct 排序運算子,以及區段運算子。 如果輸出欄清單超過群組欄清單的長度,您就會遇到這個問題。
參考
如需有關 SQL Server 的增量服務模型的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:
935897 您可以從 SQL Server 團隊取得增量服務模型,以提供已報告問題的修補程式如需 SQL Server 更新命名架構的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:
822499Microsoft SQL Server 軟體更新套件的新命名架構如需軟體更新術語的詳細資訊,請按一下下列文章編號,以查看 Microsoft 知識庫中的文章:
824684 描述 Microsoft 軟體更新所使用的標準術語說明