基本的にこれを行う必要があるインデックス付きビューがあります
SELECT ...
CASE
WHEN ISDATE(ColumnName) = 1 THEN CONVERT(datetime, ColumnName, 103)
ELSE NULL
END AS ViewColumn
....
インデックスを作成しようとすると、次のようになります。
ビュー'....'にインデックスを作成できません。関数'isdate'は、非決定論的な結果を生成します。決定論的システム関数を使用するか、ユーザー定義関数を変更して決定論的結果を返します。
MSDNによると
ISDATEは、CONVERT関数で使用し
、CONVERTスタイル・パラメーターが指定されていて、スタイルが0、100、9、または109に等しくない場合にのみ決定論的です。
ここhttp://msdn.microsoft.com/en-us/library/ms187347.aspx。
しかし、それが何を意味するのかはまったくわかりません。私の知る限り、CONVERT関数で使用しています。
これを回避する方法はありますか?