Das Problem OP hatte, während nur rand()
verwendet wurde liegt an seiner Auswertung einmal pro Abfrage .
Aus der Dokumentation :
Der unten beschriebene Ansatz entfernt die Optimierung und unterdrückt dieses Verhalten, also rand()
wird einmal pro Zeile ausgewertet :
dateadd( second
, rand(cast(newid() as varbinary)) * 43200
, cast('08:00:00' as time) )
newid()
generiert einen eindeutigen Wert vom Typuniqueidentifier
;- der Wert wird mit
cast
umgewandelt als Seed zu verwenden inrand([seed])
Funktion zum Generieren eines pseudozufälligenfloat
Wert von 0 bis 1 , und als Seed ist immer eindeutig, der Rückgabewert ist auch eindeutig .