Вместо rand() , използвайте newid() , което се преизчислява за всеки ред в резултата. Обичайният начин е да използвате модула на контролната сума. Обърнете внимание, че checksum(newid()) може да произведе -2,147,483,648 и да причини преливане на цяло число в abs() , така че трябва да използваме modulo за връщаната стойност на контролната сума, преди да я преобразуваме в абсолютна стойност.
UPDATE CattleProds
SET SheepTherapy = abs(checksum(NewId()) % 10000)
WHERE SheepTherapy IS NULL
Това генерира произволно число между 0 и 9999.