Относительно этого вопроса , я решил проверить 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
Почему это?