Statt rand()
, verwenden Sie newid()
, die für jede Zeile im Ergebnis neu berechnet wird. Der übliche Weg ist, das Modulo der Prüfsumme zu verwenden. Beachten Sie, dass checksum(newid())
kann -2.147.483.648 erzeugen und einen ganzzahligen Überlauf bei abs()
verursachen , also müssen wir Modulo auf den Rückgabewert der Prüfsumme anwenden, bevor wir ihn in einen absoluten Wert umwandeln.
UPDATE CattleProds
SET SheepTherapy = abs(checksum(NewId()) % 10000)
WHERE SheepTherapy IS NULL
Dadurch wird eine Zufallszahl zwischen 0 und 9999 generiert.