当前位置: 代码迷 >> Sql Server >> 怎么用update只修改数据库记录的前20条
  详细解决方案

怎么用update只修改数据库记录的前20条

热度:20   发布时间:2016-04-27 17:50:47.0
如何用update只修改数据库记录的前20条?
最好举一个例子,谢各位了。

------解决方案--------------------
select *from a

update a set name = 'E '
from a a
join(select top 2 * from a order by id )t on a.id =t.id

select * from a

--result
id name
----------- ----------
1 A
2 B
3 C
4 D

(所影响的行数为 4 行)


(所影响的行数为 2 行)

id name
----------- ----------
1 E
2 E
3 C
4 D

(所影响的行数为 4 行)
------解决方案--------------------
例如:表test(id,empno,empname,departid,salary,indate) --id 為primary key
要求:進入公司日期前20名員工的薪資加200元 
with t1 as
(select top 20 id
from test
order by indate
)
update a
set a.salary= a.salary+200
from test as a
left join t1 as b on a.id = b.id
where b.id is not null

注意:只適用於SQL Server 2005
------解决方案--------------------
SET ROWCOUNT 20
update ....
SET ROWCOUNT 0
------解决方案--------------------
--设置update影响的记录数

SET ROWCOUNT 20
update ....
SET ROWCOUNT 0
  相关解决方案