テスト目的で、列を各行の異なるランダム値に更新したい大きなテーブルがあります。
私が言うなら:
update MyTable
set MyCol = Rand()*100
その場合、値は確かにランダムですが、すべての行に適用される同じ乱数です。
カーソルを使用して、各行を 1 つずつ繰り返して更新することもできます。必要に応じて、カーソルを使用することは明らかです。しかし、1 つの簡潔なステートメントで、各行を異なるランダム値で更新する SQL 構文はありますか?
テスト目的で、列を各行の異なるランダム値に更新したい大きなテーブルがあります。
私が言うなら:
update MyTable
set MyCol = Rand()*100
その場合、値は確かにランダムですが、すべての行に適用される同じ乱数です。
カーソルを使用して、各行を 1 つずつ繰り返して更新することもできます。必要に応じて、カーソルを使用することは明らかです。しかし、1 つの簡潔なステートメントで、各行を異なるランダム値で更新する SQL 構文はありますか?
RAND
行ごとに新しいものをシードする必要があります。
RAND(CHECKSUM(NEWID()))
UPDATE MyTable
SET MyCol = CAST(RAND(CHECKSUM(NEWID())) * 10 as INT) + 1
テーブルの主キーでランダム関数をシードできますか?
update MyTable
set MyCol = Rand(MyIDColumn)*100