日期:2014-05-18  浏览次数:20449 次

请教:如何在sql server 2000中批量修改一些记录
服务器上的sql server 2000数据库中,有一个员工信息表,内容包括工号、姓名、性别、身份证号、职称等基本信息,字段都是字符型的。现在发现其中有一两百条的员工身份证号有误。可以在客户机上通过企业管理器对这个数据库进行操作。在客户机上针对这些有误的员工有一个自由表,包括两个字段:工号、修改后的身份证号。请教如何在客户机上进行操作,能够批量修改服务器数据库上的有误身份证号?

------解决方案--------------------
引用楼主 eipt 的帖子:
服务器上的sql server 2000数据库中,有一个员工信息表,内容包括工号、姓名、性别、身份证号、职称等基本信息,字段都是字符型的。现在发现其中有一两百条的员工身份证号有误。可以在客户机上通过企业管理器对这个数据库进行操作。在客户机上针对这些有误的员工有一个自由表,包括两个字段:工号、修改后的身份证号。请教如何在客户机上进行操作,能够批量修改服务器数据库上的有误身份证号?

------解决方案--------------------
SQL code
update a set 身份证号=b.修改后的身份证号  from 员工信息表 a,自由表 b where a.工号=b.工号

------解决方案--------------------
SQL code
update tb1
set 身份证号=tb2.身份证号
from tb2
where tb1.工号=tb2.工号

------解决方案--------------------
SQL code
update 员工信息表 set 身份证号=b.修改后的身份证号 from  员工信息表 a join 自由表 b on a.工号=b.工号 
          and  a.工号 in(select 工号 from 员工信息表 where 条件判断出错误员工信息的)

------解决方案--------------------
把客户机上的自由表bbb导入服务器,然后就可以
SQL code

update aaa set 身份证号=b.修改后的身份证号 from aaa as a,b where a.工号=b.工号

update from的用法,具体参看这个例子:
UPDATE titles
    SET ytd_sales = t.ytd_sales + s.qty
    FROM titles t, sales s
    WHERE t.title_id = s.title_id
    AND s.ord_date = (SELECT MAX(sales.ord_date) FROM sales)