如何在一个步骤中使用随机数据批量更新SQL表?

时间:2013-02-14 10:28:10

标签: sql-server sql-server-2012

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

如果我说:

update MyTable
set MyCol = Rand()*100

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

我可以使用游标逐个迭代和更新每一行,这显然是必要时我会依赖的。但是,是否有一些SQL语法会在一个简洁的语句中用不同的随机值更新每一行?

3 个答案:

答案 0 :(得分:3)

您需要为每行添加新内容RAND

RAND(CHECKSUM(NEWID()))

答案 1 :(得分:2)

UPDATE MyTable
SET MyCol = CAST(RAND(CHECKSUM(NEWID())) * 10 as INT) + 1

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

答案 2 :(得分:2)

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

update MyTable
set MyCol = Rand(MyIDColumn)*100