In plaats van rand() , gebruik newid() , die voor elke rij in het resultaat opnieuw wordt berekend. De gebruikelijke manier is om de modulo van de controlesom te gebruiken. Merk op dat checksum(newid()) kan -2.147.483.648 produceren en integer overflow veroorzaken op abs() , dus we moeten modulo gebruiken op de checksum-retourwaarde voordat we deze naar absolute waarde converteren.
UPDATE CattleProds
SET SheepTherapy = abs(checksum(NewId()) % 10000)
WHERE SheepTherapy IS NULL
Dit genereert een willekeurig getal tussen 0 en 9999.