我被赋予了一个任务,可以插入超过1000行,包含4列。相关表格没有PK
或FK
。假设它包含ID
,CustomerNo
,Description
列。需要插入的记录可以具有相同的CustomerNo
和Description
值。
我读到了将数据导入临时表,将其与真实表进行比较,删除重复项以及将新记录移动到真实表中的信息。
我也可以有1000个查询来检查这样的记录是否已经存在,如果不存在则插入数据。但出于显而易见的原因,我太惭愧了。
我不期待任何特定代码,因为我没有提供任何具体细节。我希望的是完成这些任务的一些伪代码或一般建议。我迫不及待想要一些赞成!
答案 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)
你总是需要读取目标表,除非你将目标表批量加载到临时表中(此时你将有两个临时表)比较两者,消除重复,然后插入目标表,但即便如此这是不准确的,因为在执行此操作时,您可以在目标表中使用新插入。