3

テスト目的で、列を各行の異なるランダム値に更新したい大きなテーブルがあります。

私が言うなら:

update MyTable
set MyCol = Rand()*100

その場合、値は確かにランダムですが、すべての行に適用される同じ乱数です。

カーソルを使用して、各行を 1 つずつ繰り返して更新することもできます。必要に応じて、カーソルを使用することは明らかです。しかし、1 つの簡潔なステートメントで、各行を異なるランダム値で更新する SQL 構文はありますか?

4

3 に答える 3

5

RAND行ごとに新しいものをシードする必要があります。

RAND(CHECKSUM(NEWID()))

于 2013-02-14T10:30:14.943 に答える
2
UPDATE MyTable
SET MyCol = CAST(RAND(CHECKSUM(NEWID())) * 10 as INT) + 1

http://sqlfiddle.com/#!3/78a75/2

于 2013-02-14T10:29:59.080 に答える
2

テーブルの主キーでランダム関数をシードできますか?

update MyTable
set MyCol = Rand(MyIDColumn)*100
于 2013-02-14T10:30:18.847 に答える