Bien, resuulta como bien pone en el titulo del hilo, que tengo una duda sobre sql server. No se si es complicado o no hacer lo que intento hacer, pero vamos, que no soy capaz de conseguirlo y me tiene de cabeza.
Básicamente quiero generar un número aleatorio (con RAND()) y guardarlo en una variable, pero todo esto dentro de una función.
El bloque de código básicamente es este:
DECLARE @random FLOAT
SET @random=RAND()
SELECT @random <---Esto es para ver si sale o no
(el cual me devuelve un aleatorio en la variable que quiero)
¿Porque hago esto? pues porque, si por ejemplo intento poner en mi función
IF RAND()>0.75
El tio bill gates me dice algo asi:
Invalid use of side-effecting or time-dependent operator in 'rand' within a function.
Asique quiero que ese RAND(), este dentro de mi variable
No se si se entiende bien o no lo que intento hacer, si necesitais un contexto de lo que es mi función preguntad, pero creo que no es necesario vaya...
Espero que podáis ayudarme, porque esto me trae loco!
DUDA solucionada:
--HACE FALTA EJECUTAR ESTO PARA EJECUTAR LA FUNCION NUMERO ALEATORIO
CREATE VIEW vRandNumber
AS
SELECT RAND() as RandNumber
--Función para retornar un número aleatorio
CREATE FUNCTION numeroAleatorio() RETURNS FLOAT
AS
BEGIN
RETURN (SELECT RandNumber FROM vRandNumber)
END