CASE 式を使用して永続化された計算列を作成しようとしています:
ALTER TABLE dbo.Calendar ADD PreviousDate AS
case WHEN [Date]>'20100101' THEN [Date]
ELSE NULL
END PERSISTED
MSDN は、CASE は決定論的であると明確に述べています。
ただし、エラーが発生します。
メッセージ 4936、レベル 16、状態 1、行 1 テーブル 'Calendar' の計算列 'PreviousDate' は、列が非決定論的であるため、永続化できません。
もちろん、スカラー UDF を作成し、それを決定論的として明示的に宣言することはできますが、これを回避する簡単な方法はありますか? すでに最新のサービス パックを入手している最中です。ありがとう。