SQL SERVER 2000:
У меня есть таблица с тестовыми данными (около 100000 строк), я хочу обновить значение столбца из другой таблицы с некоторыми случайными данными из другой таблицы. Согласно этот вопрос , вот что я пытаюсь:
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())
Тем не менее, поле "type" по-прежнему имеет одинаковое значение для всех строк; Есть идеи, что я делаю не так?
[ 1011 * EDIT *]
Я ожидаю, что этот запрос будет возвращать одно значение для каждой строки, но это не так:
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