SQL Server 2000:table mise à jour avec des données aléatoires avec NEWID() ne fonctionne pas
J'ai une table avec des données de test (environ 100 000 lignes), je veux mettre à jour une valeur de colonne d'une autre table avec des données aléatoires d'une autre table. Selon this question, ce que je suis en train:
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())
Cependant, le champ « type » est toujours avec la même valeur pour toutes les lignes; Des idées que fais-je tort?
[EDIT ] Je me attends à cette requête pour retourner une valeur différente pour chaque ligne, mais il ne fonctionne pas:
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