viernes, 24 de octubre de 2008

como generar numeros verdaderamente random en sql server

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