通过生成随机数来更新Sql Server列

时间:2015-11-23 11:43:33

标签: sql-server random sql-update

我尝试使用Sql Server 2008 R2中的随机数更新我的列。

例如myTable如下所示:

id  password
1   NULL
2   NULL
3   NULL
4   NULL
4   NULL
5   NULL
5   NULL
5   NULL

当我通过生成5位数的随机数更新password时,表格如下:

UPDATE myTable
SET password =   CONVERT(numeric(5,0),RAND(convert(varbinary,newid()))*89999)+10000

id  password
1   87781
2   15395
3   62154
4   74194
4   49599
5   54090
5   47287
5   63193

而且,我的问题是为每个password生成id。 可以帮助我查询给出结果:

id  password
1   87781
2   15395
3   62154
4   74194
4   74194
5   54090
5   54090
5   54090

1 个答案:

答案 0 :(得分:2)

第一次更新后,你可以再做一次:

;with cte as(select *, min(password) over(partition by id) as pnew from myTable)
update cte set password = pnew