Em vez de
rand() , use newid() , que é recalculado para cada linha no resultado. A maneira usual é usar o módulo da soma de verificação. Observe que checksum(newid()) pode produzir -2.147.483.648 e causar estouro de inteiro em abs() , portanto, precisamos usar o módulo no valor de retorno da soma de verificação antes de convertê-lo em valor absoluto. UPDATE CattleProds
SET SheepTherapy = abs(checksum(NewId()) % 10000)
WHERE SheepTherapy IS NULL
Isso gera um número aleatório entre 0 e 9999.