3

我有一个大表,出于测试目的,我想在每行上将一列更新为不同的随机值。

如果我说:

update MyTable
set MyCol = Rand()*100

那么该值确实是随机的 - 但它是应用于每一行的相同随机数。

我可以使用游标来逐一迭代和更新每一行,这显然是我在必要时会依赖的。但是是否有一些 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

您可以使用表的主键为 Random 函数播种吗?

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