Místo rand() , použijte newid() , která se přepočítává pro každý řádek ve výsledku. Obvyklým způsobem je použití modulo kontrolního součtu. Všimněte si, že checksum(newid()) může vytvořit -2 147 483 648 a způsobit přetečení celého čísla na abs() , takže musíme použít modulo na návratovou hodnotu kontrolního součtu, než ji převedeme na absolutní hodnotu.
UPDATE CattleProds
SET SheepTherapy = abs(checksum(NewId()) % 10000)
WHERE SheepTherapy IS NULL
Tím se vygeneruje náhodné číslo mezi 0 a 9999.