【发布时间】:2010-01-07 21:20:16
【问题描述】:
SQL 服务器 2000:
我有一个包含测试数据的表(大约 100000 行),我想用另一个表中的一些随机数据更新另一个表中的列值。根据this question,这就是我正在尝试的:
UPDATE testdata
SET type = (SELECT TOP 1 id FROM testtypes ORDER BY CHECKSUM(NEWID()))
-- or even
UPDATE testdata
SET type = (SELECT TOP 1 id FROM testtypes ORDER BY NEWID())
但是,“类型”字段对于所有行仍然具有相同的值;任何想法我做错了什么?
[编辑] 我希望这个查询为每一行返回一个不同的值,但它不会:
SELECT testdata.id, (SELECT TOP 1 id FROM testtypes ORDER BY CHECKSUM(NEWID())) type
FROM testdata
-- however seeding a rand value works
SELECT testdata.id, (SELECT TOP 1 id FROM testtypes ORDER BY CHECKSUM(NEWID()) + RAND(testdata.id)) type
FROM testdata
【问题讨论】:
标签: sql-server tsql random sql-server-2000