Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como posso preencher uma coluna com números aleatórios no SQL? Eu recebo o mesmo valor em todas as linhas


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.