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

时间:2020-03-05 18:59:01  来源:igfitidea点击:

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

我知道我可以使用游标,但这似乎不太好。

MS-SQL 2000,BTW

解决方案

回答

我们可能可以根据需要查找类似的内容,以加载值的测试数据集

回答

如果这只是一次将数据输入系统的事情,那么我真的不觉得使用游标有什么问题,就像我讨厌游标确实占据了位置一样。

回答

另外,如果我们只是为了进行测试或者一次使用,我想说一种优雅的解决方案实际上不是必需的。

回答

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

回答

这个怎么样:

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

回答

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

回答

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

CAST(RAND() as varchar(10))

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

回答

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

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

显然,如果要最多十个字符,则串联更多的随机字符。
查询优化器可能会将所有字段设置为相同的值。在这种情况下,我会尝试

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

诱使优化器每次重新计算表达式时都要重新计算。