徵狀
當您在 Microsoft SQL Server 2012 或 SQL Server 2014 中執行查詢,且下列條件為 true 時,SQL Server 2012 中會產生一個不理想的執行方案:
-
查詢包含Case、if、 WhenThen及Else語句。
-
If 語句具有 可評估為 "false" 的常數條件。
-
Then語句包含Select子句。
注意事項
-
在執行方案中,會評估並比較isFalseOrNull(0)的Then語句。 不過,if 語句總是 會評估為 "false"。
-
這個問題不會發生在 Microsoft SQL Server 2008 R2 中。
解決方案
此問題最初是在 SQL Server 的後續累積更新中修正。
SQL Server 2014 的累積更新1 /en-us/help/2931693
SQL Server 2012 SP1 的累積更新7 /en-us/help/2894115
每個新的 SQL Server 累計更新都包含所有的修正程式,以及前一個累積更新中所包含的所有安全性修正程式。 查看 SQL Server 的最新累計更新:
狀態
Microsoft 已確認<適用於>一節所列的 Microsoft 產品確實有上述問題。