如题,如果我想用bcp导入一堆数据,如果有主键重复的情况那么忽略掉这些重复的值,仅插入一条即可(可能是被导入数据重复,也可能是现有数据与被导入数据重复),而不是退出bcp,回滚事务

解决方案 »

  1.   

    EXEC master..xp_cmdshell 'BCP "SELECT distinct * FROM tb" queryout c:\currency2.txt -c -U"sa" -P"password"' 
      

  2.   


    你是说先先写在一个表里,比如#temptable,然后再用insert into select ....导入?
    这样的话那不就太慢了!??
      

  3.   

    还有,怎么去掉重复值?select * from A where A.id not in (select id from B)    ????
      

  4.   

    A表为源表,
    B表为中间表,
    两表结构相同,B表取消主键约束条件,
    INSERT INTO B SELECT DISTINCT ID..............
    然后,把B表的数据反灌回A表即可
      

  5.   

    1、先把数据放到一个临时表里,用临时表的速度还是可以的。
    2、从临时表取不重复的数据。
    3、向目标表插入数据的时候,注意判断和表里数据不重复的。
    如:
    insert ta select * from #temp a where not exists(select 1 from ta where a.主键字段=主键字段)