我嘗試使用CASE表達式來創建一個持久化計算列:爲什麼我的CASE表達式不確定?
ALTER TABLE dbo.Calendar ADD PreviousDate AS
case WHEN [Date]>'20100101' THEN [Date]
ELSE NULL
END PERSISTED
MSDN明確表示,CASE是確定性的,here
不過,我得到一個錯誤:
Msg 4936, Level 16, State 1, Line 1 Computed column 'PreviousDate' in table 'Calendar' cannot be persisted because the column is non-deterministic.
當然,我可以創建一個標量UDF並明確聲明它是確定性的,但是有沒有更簡單的方法呢?我已經在獲得最新的服務包了。謝謝。
老問題,我知道,但你如何建議*「在SQL Server中創建一個標量UDF並顯式聲明它爲確定性」*。我被告知你可以在Oracle中這樣做,但是我從來沒有在SQL Server中看到過... – jimbobmcgee 2016-03-31 12:38:28