Invece di rand()
, usa newid()
, che viene ricalcolato per ogni riga nel risultato. Il solito modo è usare il modulo del checksum. Nota che checksum(newid())
può produrre -2,147,483,648 e causare un overflow di numeri interi su abs()
, quindi è necessario utilizzare modulo sul valore restituito del checksum prima di convertirlo in valore assoluto.
UPDATE CattleProds
SET SheepTherapy = abs(checksum(NewId()) % 10000)
WHERE SheepTherapy IS NULL
Questo genera un numero casuale compreso tra 0 e 9999.