如何使用随机数据更新字段?

时间:2008-09-17 14:37:29

标签: sql sql-server

我在拥有1000多条记录的数据库中有一个新的varchar(10)字段。我想更新表格,以便我可以在该字段中获得随机数据。我正在寻找一个SQL解决方案。

我知道我可以使用光标,但这似乎不太优雅。

MS-SQL 2000,BTW

8 个答案:

答案 0 :(得分:5)

update MyTable Set RandomFld =  CONVERT(varchar(10), NEWID())

答案 1 :(得分:1)

您可能能够调整某些内容like this来加载值的测试数据集,具体取决于您要查找的内容

答案 2 :(得分:1)

此外,如果您只是为了测试或一次性使用,我会说优雅的解决方案并不是必需的。

答案 3 :(得分:1)

为什么不使用当前时间戳和随机数的md5校验和的前10个字符?

答案 4 :(得分:1)

类似(未经测试的代码):

UPDATE yourtable
SET yourfield= CHAR(32+ROUND(RAND()*95,0));

显然,如果你想要多达十个字符,可以连接更多随机字符。 查询优化器可能会将所有字段设置为相同的值;在那种情况下,我会尝试

SET yourfield=LEFT(yourfield,0)+CHAR…

欺骗优化器每次重新计算表达式。

答案 5 :(得分:0)

如果这是一次只是为了将数据输入系统,我真的看到使用游标没有问题,因为我讨厌游标,他们确实有自己的位置。

答案 6 :(得分:0)

这个怎么样:

UPDATE TBL SET Field = LEFT( CONVERT(varchar(255), @myid),10)

答案 7 :(得分:0)

如果您在SQL Server中,则可以使用

CAST(RAND() as varchar(10))

编辑:这只能在迭代中使用。作为多行插入的一部分,它将为每一行使用相同的RAND()结果。

相关问题