这是一个非常简单的功能,它反映了确定性.如果我编译它本机,它不再是确定性的.我如何使其原生编译和确定性?
CREATE FUNCTION [hash].[HashDelimiter2]() RETURNS NCHAR(1) WITH SCHEMABINDING AS BEGIN RETURN N';' END GO /* This does indeed result in YES */ SELECT IS_DETERMINISTIC FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_NAME = 'HashDelimiter2' /* But then compile it native and it's no longer deterministic */ CREATE FUNCTION [hash].[HashDelimiter3]() RETURNS NCHAR(1) WITH NATIVE_COMPILATION,SCHEMABINDING AS BEGIN ATOMIC WITH ( TRANSACTION ISOLATION LEVEL = SNAPSHOT,LANGUAGE = N'English' ) RETURN N';' END GO /* This results in NO */ SELECT IS_DETERMINISTIC FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_NAME = 'HashDelimiter3'