Problemet OP havde, mens du kun brugte rand()
skyldes dets evaluering én gang pr. forespørgsel .
Fra dokumentationen :
Den fremgangsmåde, der er beskrevet nedenfor, fjerner optimering og undertrykker denne adfærd, så rand()
evalueres én gang pr. række :
dateadd( second
, rand(cast(newid() as varbinary)) * 43200
, cast('08:00:00' as time) )
newid()
genererer en unik værdi af typenuniqueidentifier
;- værdien konverteres med
cast
skal bruges som frø irand([seed])
funktion til at generere en pseudo-tilfældigfloat
værdi fra 0 til 1 , og som frø er altid unik, den returnerende værdi er også unik .