SQL Server:使用随机十进制数填充列

时间:2011-12-17 18:32:38

标签: sql-server-2008

我希望我的函数在范围内生成浮点数(例如:-123.000,874.000)(如:272和3357之间)并使用唯一的浮点数更新每个记录的“pos_x”字段。 我写这个代码,但我看到我的表的字段都是相同的,也是整数,它们是正的。

这是我的代码:

UPDATE Driver_tbl
SET pos_x = (ROUND((RAND()* 10000),0))

1 个答案:

答案 0 :(得分:13)

每次查询一次评估RAND

您可以使用CHECKSUM(NEWID())将其播种,因此每行

UPDATE Driver_tbl
SET pos_x = ROUND(RAND(CHECKSUM(NEWID())) * (3357-272),0) + 272

但是,如果您使用ROUND(..,0)

,您也可以删除中间人
UPDATE Driver_tbl
SET pos_x = ABS(CHECKSUM(NEWID())) % 9999