sql随机修改数据
表
id name state
1 101 成功
2 102 成功
3 103 失败
4 104 其它
5 105 失败
6 106 成功
7 107 成功
现在需要编写sql语句随机修改state=成功的记录,是随机,而不是连续性的修改,比如我要随机修改2条,就修改2条,请大侠帮帮忙!
------解决方案--------------------update top (2) tbName set state= '成功' order by checksum(newid())
------解决方案--------------------
UPDATE a
SET a.STATE = b.state
FROM TB a
INNER JOIN ( SELECT TOP ( 2 )
*
FROM TB
WHERE STATE <> '成功'
ORDER BY CHECKSUM(NEWID())
) b ON a.id = b.id
AND a.NAME = b.name