La funcion RAND en SQL Server no es muy buena, y necesita un seed la primera vez dentro del un stored procedure, por ejemplo, y luego llamarla sin parametros.
De esta forma se obtienen numeros un poco mas variados.
El tema es como generar el "Seed".
Se puede hacer a partir de los milisegundos de la maquina mas algun otro valor de parametro que varie, porque sino ni los milisegundos lo hacen variar mucho
DECLARE @seed INT, @temp INT
SET @seed = DATEPART(ms, getdate()) + @parametroEntero --genero el seed
SET @temp = RAND(@seed) --Genero un numero dummy con el seed, no lo uso
DECLARE @i INT
SET @i=0
WHILE @i < 5
BEGIN
SELECT FLOOR(RAND()* 100) --Genero numeros aleatorios del 0-99
SET @i=@i+1
END
No hay comentarios:
Publicar un comentario