Problem OP miał podczas używania tylko rand()
wynika z oceny raz na zapytanie .
Z dokumentacji :
Podejście opisane poniżej usuwa optymalizację i tłumi to zachowanie, więc rand()
jest oceniany raz na wiersz :
dateadd( second
, rand(cast(newid() as varbinary)) * 43200
, cast('08:00:00' as time) )
newid()
generuje unikatową wartość typuuniqueidentifier
;- wartość jest konwertowana za pomocą
cast
do wykorzystania jako zarodek wrand([seed])
funkcja do generowania pseudolosowegofloat
wartość od 0 do 1 i jako zarodek jest zawsze unikalny, zwracana wartość też jest unikalna.