I stedet for rand()
, brug newid()
, som genberegnes for hver række i resultatet. Den sædvanlige måde er at bruge kontrolsummens modulo. Bemærk, at checksum(newid())
kan producere -2.147.483.648 og forårsage heltalsoverløb på abs()
, så vi skal bruge modulo på checksum returværdien, før vi konverterer den til absolut værdi.
UPDATE CattleProds
SET SheepTherapy = abs(checksum(NewId()) % 10000)
WHERE SheepTherapy IS NULL
Dette genererer et tilfældigt tal mellem 0 og 9999.