我在拥有1000多条记录的数据库中有一个新的varchar(10)字段。我想更新表格,以便我可以在该字段中获得随机数据。我正在寻找一个SQL解决方案。
我知道我可以使用光标,但这似乎不太优雅。
MS-SQL 2000,BTW
答案 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()结果。