更新sql中前100行的随机数?

Jam*_*123 5 sql t-sql sql-server sql-server-2005 sql-server-2008

我需要在sql中更新前100行(一个字段)的随机数.随机数应小于100.怎么办?

Ale*_*Aza 12

在SQL 2008中

update top (100) MyTable
set MyField = cast(cast(crypt_gen_random(1) as int) * 100.0 / 256 as int)
Run Code Online (Sandbox Code Playgroud)

我相信同样适用于SQL 2005.

[编辑]

如果它在SQL 2005中不起作用,您可以这样做:

update top (100) MyTable
set MyField = abs(cast(newid() as binary(6)) % 100)
Run Code Online (Sandbox Code Playgroud)