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
[其他解释] update top (2) tbName set state= '成功' order by checksum(newid()) [其他解释] update top (2) tbName set state= '成功' [其他解释]
不能连续性修改想要的结果是: id name state 1 101 成功1 //被修改过的 2 102 成功 3 103 失败 4 104 其它 5 105 失败 6 106 成功 7 107 成功1 //被修改过的
[其他解释]
不能连续性修改想要的结果是: id name state 1 101 成功1 //被修改过的 2 102 成功 3 103 失败 4 104 其它 5 105 失败 6 106 成功 7 107 成功1 //被修改过的 [其他解释] 可以了,代码如下: declare @i int set @i=1 while @i<3 begin
update table set [State]='成功1' where
id=(SELECT TOP 1 id From SRSMS17_Sendstate WHERE [State]='成功' and Sendmessageid='70' order by checksum(newid())) set @i=@i+1 end [其他解释] update top 2 tbName set state= '成功1' where state='成功' order by newid()