如何使用随机数据更新字段?
时间: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…
诱使优化器每次重新计算表达式时都要重新计算。