我有一个大表,为了测试目的,我想在每行上将列更新为不同的随机值。
如果我说:
update MyTable
set MyCol = Rand()*100
那么该值实际上是随机的 - 但它是应用于每一行的相同随机数。
我可以使用游标逐个迭代和更新每一行,这显然是必要时我会依赖的。但是,是否有一些SQL语法会在一个简洁的语句中用不同的随机值更新每一行?
答案 0 :(得分:3)
您需要为每行添加新内容RAND
:
RAND(CHECKSUM(NEWID()))
答案 1 :(得分:2)
UPDATE MyTable
SET MyCol = CAST(RAND(CHECKSUM(NEWID())) * 10 as INT) + 1
答案 2 :(得分:2)
您可以使用表的主键播种Random函数吗?
update MyTable
set MyCol = Rand(MyIDColumn)*100