Использование View может помочь вам.
С Возвращение случайных чисел из оператора выбора
CREATE VIEW vRandNumber
AS
SELECT RAND() as RandNumber
Представление необходимо, потому что, как вы уже узнали, UDF не может использовать функцию rand (), потому что это сделает функцию недетерминированной. Вы можете обмануть UDF, чтобы принять случайное число, используя View.
CREATE FUNCTION RandNumber()
RETURNS float
AS
BEGIN
RETURN (SELECT RandNumber FROM vRandNumber)
END
Наконец, вы можете использовать эту функцию в любом SELECT, чтобы теперь возвращать случайное число от 0 до 1 в строке:
SELECT dbo.RandNumber(), *
FROM Northwind..Customers