Можно. Тем не менее, это потребует немного дополнительной работы.
Во-первых, вам нужно создать представление, как показано ниже:
create view dbo.sys_NDF
as
select rand() as [ValueRand], newid() as [ValueGUID],
rand(checksum(newid())) as [SeededRand];
go
Хитрость в том, что вы не можете вызывать эти системные функции напрямую из вашей UDF, однако вы можете запросить представление, которое возвращает их значения. Позже вы можете расширить его другими функциями / столбцами, если это будет необходимо.
Таким образом, ваша функция начинает выглядеть следующим образом:
Create function [GetRandomNumber]()
RETURNS bigint as begin
return (select round(v.SeededRand * 10001 + 50000, 0) from dbo.sys_NDF v);
end;
go