需要同时修改数据库中几条记录,按不同的条件,怎么写SQL?

hoge66 2004-03-27 09:44:10
例如:
部门 人员编号 工资

005 01 0
005 02 0
005 03 0
005 04 0
005 05 0
我需要“同时”给每个人员发放不同的工资!怎么写语句??一定要同时发放!
...全文
92 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
leeboyan 2004-03-27
这样行么?
先将工资插入一个临时表:包含人员编号,工资两个字段
然后update
update table1 a set 工资=select 工资 from temp b where a.人员编号=b.人员编号
回复
hoge66 2004-03-27
各位大哥:
能否用一条语句更改呢?因为我不能确切知道到底是那位员工!员工的数据是从别的表中批量插入的!
回复
progress99 2004-03-27
因為數據涉及到工資,更改語句還是要加上事務。
begin tran

update A
set A.工资=B.工资
from 你的表 A
left join 新建的表 B
on b.人员编号=A.人员编号
if @@error<>0 rollback

commit
回复
progress99 2004-03-27
每次在運行語句前,先將工資數據輸入到《新建的表》中。
回复
welyngj 2004-03-27
set xact_abort on
begin tran
update tbl .....
update tbl......
....
commit tran

要么全部发放成功,要么一起失败。
回复
Clove 2004-03-27
不知道其它表的关联如何
说说其他关联表
回复
progress99 2004-03-27
建一個工資表,字段為(人员编号,工资)
人员编号 工资
01 1000
02 2000

update A
set A.工资=B.工资
from 你的表 A
left join 新建的表 B
on b.人员编号=A.人员编号
回复
Rotaxe 2004-03-27
把修改语句放入一个事务中就可以。
回复
chenzhuo 2004-03-27
用游标!!!
回复
发帖
疑难问题
创建于2007-09-28

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
帖子事件
创建了帖子
2004-03-27 09:44
社区公告
暂无公告