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

如何实现逐条插入,而不会因为某一条失败而不继续做下去(50分)
需要将一张表中的数据全部插入另一张,由于会合另一张表中的数据重复,所以如果只是简单的
insert   into   B   select   *   from   A  
会整条语句执行不成功.

现在希望一条一条插入,由于表B上有一个组合PK,基本可以确定以这个主键来判断是否重复,而A上没有,所以插入的如果主键重复就会不插入。
现在的方法是做一个Cursor,以主键来select   distinct,再以此游标来取出distinct的数据,构成insert语句,每条都只插入一个记录,这样不成功就会做下一条。避免了一个记录插不进去就整个放弃。
但是效率太慢了!!!!!

那位大虾有好的方法,让插入的时候逐条的做,不成功进行下一条。
拜谢!!

------解决方案--------------------
--如果A表內的數據沒有重復
insert into B select * from A Where Not Exists(Select * From B Where 主鍵 = A.主鍵)
------解决方案--------------------
insert into B select A.* from A,B where A.主键列 <> B.主键列