rand()
の代わりに 、newid()
を使用します 、結果の行ごとに再計算されます。通常の方法は、チェックサムのモジュロを使用することです。 checksum(newid())
に注意してください -2,147,483,648を生成し、abs()
で整数オーバーフローを引き起こす可能性があります 、したがって、チェックサムの戻り値を絶対値に変換する前に、モジュロを使用する必要があります。
UPDATE CattleProds
SET SheepTherapy = abs(checksum(NewId()) % 10000)
WHERE SheepTherapy IS NULL
これにより、0から9999までの乱数が生成されます。