Le problème est que vous ne pouvez pas appeler une fonction non déterministe depuis une fonction définie par l'utilisateur.
J'ai contourné cette limitation en créant une vue, en appelant cette fonction dans la vue et en utilisant cette vue dans votre fonction, quelque chose comme ça......
Afficher la définition
CREATE VIEW vw_getRANDValue
AS
SELECT RAND() AS Value
Définition de la fonction
ALTER FUNCTION getNumber(@_id int )
RETURNS DECIMAL(18,4)
AS
BEGIN
DECLARE @RtnValue DECIMAL(18,4);
SELECT TOP 1 @RtnValue = EmployeeID
FROM dbo.Employees
ORDER BY EmployeeID DESC
SET @RtnValue = (SELECT Value FROM vw_getRANDValue) * @RtnValue * (1.0000/100.0000) --<-- to make sure its not converted to int
RETURN @RtnValue;
END