Istället för rand()
, använd newid()
, som räknas om för varje rad i resultatet. Det vanliga sättet är att använda kontrollsummans modulo. Observera att checksum(newid())
kan producera -2 147 483 648 och orsaka heltalsspill på abs()
, så vi måste använda modulo på checksummans returvärde innan vi konverterar det till ett absolut värde.
UPDATE CattleProds
SET SheepTherapy = abs(checksum(NewId()) % 10000)
WHERE SheepTherapy IS NULL
Detta genererar ett slumptal mellan 0 och 9999.