通过c#忽略sqlbukcopy上csv文件中的重复记录

时间:2015-04-13 13:56:53

标签: c# sqlbulkcopy

我的桌子上有一列phoneNO主键 我想通过sqlbulkcopy上传csv文件 我有错误,主键没有插入重复值,所以我的问题是如果它重复和如果其他行插入数据库中如何忽略行

1 个答案:

答案 0 :(得分:1)

这是一个多步骤过程,它解决了csv文件中的重复项以及数据库中已存在的记录。

  1. 创建临时表格w / out phoneNumber主键并在必要时添加额外字段
  2. 通过sqlbulkcopy
  3. 将所有csv文件插入临时表
  4. 将所有csv文件插入临时表后,执行select distinct with where条件,确保目标表中不存在所有新插入的值。
  5. 创建临时表

    CREATE TABLE TemporaryTable
    ([phoneNumber] varchar(13));
    

    使用where子句执行Select / Distinct,不包括中已找到的所有记录

    Insert YourTableName (phoneNumber)
    Select distinct phoneNumber
    FROM TemporaryTable
    WHERE phoneNumber not in (select phoneNumber
                              from YourTableName)