CONVERT 是不确定的吗?

Is CONVERT non-deterministic?

我有以下 table:

CREATE TABLE Portfolio.DailyStats
(
Date date NOT NULL PRIMARY KEY,
NAV int NOT NULL,
SP500 decimal(8,4) NULL,
R2K decimal(8,4) NULL,
NetExp decimal(8,4) NULL,
GrossExp decimal(8,4) NULL,
[YrMn]  AS (CONVERT([varchar](7),[Date])),
)
GO

我在想我可能需要在某个时候为此建立一个索引视图,所以我想确保我计算的列 [YrMn] 是确定性的。我 运行 这个检查:

Select COLUMNPROPERTY (OBJECT_ID('Portfolio.DailyStats'),'YrMn', 'IsDeterministic')

这返回了值 0,表示该列是不确定的。考虑到特定日期的列值始终相同,我正在努力弄清楚为什么会出现这种情况。跟convert函数有什么关系吗?

如果包含 convert() 的第三个参数,style,它就变得确定了。例如

[YrMn]  AS (convert([varchar](7),[Date],120))

rextester 演示:http://rextester.com/DFNA25042