现在有一个A表,里面有这样两个字段EmployeeCode,ItemCode,B表里有Employee字段,两张表里可能有上万条数据,怎么判断A表里每一个EmployeeCode在B表中是否存在,如果不存在请将A表的这个EmployeeCode放入到另外一张表,除了用游标以外,还有没有更好的方法呢?
Select A.EmployeeCode from A
left outer join B
on A.EmployeeCode=B.EmployeeCode
Where B.employeeCode is null
这样就得出来A表中有的而B表中没有的EmployeeCode列表了,
游标是最慢的方法,慎用。
严格说起来,大概只有记录数是几十个的,不超过几百个的时候才会用到游标吧,
当然,除非你可以允许运行几个小时或者几天的过程。
如非不得已,不用游标。
select a.* into #tmp from a
left jion b a.id=b.id
where b.id is null
分解成2个步骤,先找到不存在B表的A表数据(一个select where语句),然后把这个语句之间增加insert批量插入到B表,最终形成一个insert into xx select xx from xx where xx