Problém OP měl při použití pouze rand()
je kvůli jeho vyhodnocení jednou na dotaz .
Z dokumentace :
Přístup, který je popsán níže, odstraňuje optimalizaci a potlačuje toto chování, takže rand()
se vyhodnocuje jednou na řádek :
dateadd( second
, rand(cast(newid() as varbinary)) * 43200
, cast('08:00:00' as time) )
newid()
generuje jedinečnou hodnotu typuuniqueidentifier
;- hodnota se převede pomocí
cast
být použit jako semena vrand([seed])
funkce pro generování pseudonáhodnéhofloat
hodnotu od 0 do 1 a jako zárodek je vždy jedinečné, návratová hodnota je také jedinečná.