与这个问题相关,我决定检查我的数据仓库中的UDF(应该大部分是确定性的),结果发现了一些本应该是确定性的但实际上不是。
例如:
CREATE FUNCTION [udf_YearFromDataDtID]
(
@DATA_DT_ID int
)
RETURNS int
AS
BEGIN
RETURN @DATA_DT_ID / 10000
END
在这个查询中显示:
SELECT ROUTINE_NAME
FROM INFORMATION_SCHEMA.ROUTINES
WHERE IS_DETERMINISTIC = 'NO'
AND ROUTINE_TYPE = 'FUNCTION'
ORDER BY ROUTINE_NAME
为什么会这样呢?