2个表, ip_list 和 it_audit_checklist , 表'ip_list'中有字段:ip,user_name,dept,obu,remark,ip和obu为关键字。表'it_audit_checklist'中有字段:ip,obu,user_name,dept,pc_plus_install,ad_install等字段,ip和obu为关键字。 现在要以ip_list表中的内容更新it_audit_checklist表中的相应内容,以关键字ip和obu为基准。有2中方法,如下:
方法1:
declare @ip char(16),@obu char(4),@user_name char(30),@dept char(20),@count int
select *,identity(int,1,1) as sn into #t --创建临时表't',增加列'sn'表示行号
from ip_list
select @count=max(sn) --取出最大行号
from #t
while @count>0 --循环从临时表中取出数据并插入到表it_audit_checklist中
begin
select @ip=ip,@obu=obu,@user_name=user_name,@dept=dept
from #t
where sn=@count
update it_audit_checklist
set user_name=@user_name,dept=@dept
where ip=@ip and obu=@obu
select @count=@count-1
end
方法2:
update a
set a.user_name=b.user_name,a.dept=b.dept
from ip_list a inner join it_audit_checklist b
on a.ip=b.ip and a.obu=b.obu
方法1是比较传统的做法,方法2就更为简单,明了