SQL批量插入,避免重复,没有PK

时间:2015-08-18 20:14:21

标签: c# sql

我被赋予了一个任务,可以插入超过1000行,包含4列。相关表格没有PKFK。假设它包含IDCustomerNoDescription列。需要插入的记录可以具有相同的CustomerNoDescription值。

我读到了将数据导入临时表,将其与真实表进行比较,删除重复项以及将新记录移动到真实表中的信息。

我也可以有1000个查询来检查这样的记录是否已经存在,如果不存在则插入数据。但出于显而易见的原因,我太惭愧了。

我不期待任何特定代码,因为我没有提供任何具体细节。我希望的是完成这些任务的一些伪代码或一般建议。我迫不及待想要一些赞成!

3 个答案:

答案 0 :(得分:2)

所以这个想法是,如果已经有一个具有相同ID的条目,你不想插入一个条目吗?

如果是这样,在将数据导入临时表后,您可以在select语句的where子句中完成您要查找的内容:

insert into table
    select ID, CustomerNo, Description from #data_source
    where (#data_source.ID not in (select table.ID from table))

答案 1 :(得分:0)

我建议您将数据加载到临时表或变量表中。然后你可以使用不同的关键词进行“选择进入”,这将删除重复的记录。

答案 2 :(得分:0)

你总是需要读取目标表,除非你将目标表批量加载到临时表中(此时你将有两个临时表)比较两者,消除重复,然后插入目标表,但即便如此这是不准确的,因为在执行此操作时,您可以在目标表中使用新插入。