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