J'ai besoin de mettre à jour les nombres randoms pour les 100 premières lignes (un champ) en sql. nombre random devrait être inférieur à 100. comment faire cela?
En SQL 2008
update top (100) MyTable set MyField = cast(cast(crypt_gen_random(1) as int) * 100.0 / 256 as int)
Je crois que la même chose fonctionnera dans SQL 2005.
[Modifier]
Si cela ne fonctionne pas dans SQL 2005, vous pouvez le faire:
update top (100) MyTable set MyField = abs(cast(newid() as binary(6)) % 100)
Assez sûr que c'est ok dans 2k5;
--add rows numbers ;with ROWS(id, fld, rownum) as ( select id, fld, row_number() over (order by id asc) --this order defines your "top" from tablename ) update tablename set fld = 1 + abs(checksum(newid())) % 100 --dont use rand() as it will give the same value from ROWS inner join tablename on tablename.id = ROWS.id where rownum between 1 and 100 --limit to 100 rows