如何一步用随机数据批量更新 SQL 表?

Sha*_*ica 3 sql sql-server sql-server-2012

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

如果我说:

update MyTable
set MyCol = Rand()*100
Run Code Online (Sandbox Code Playgroud)

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

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

pau*_*aul 5

您需要RAND为每一行添加新的种子:

RAND(CHECKSUM(NEWID()))