SQL Server 将现有表复制到新表中但跳过重复记录

Posted

技术标签:

【中文标题】SQL Server 将现有表复制到新表中但跳过重复记录【英文标题】:SQL Server copy existing table into new one but skip duplicate records 【发布时间】:2018-10-12 16:59:09 【问题描述】:

所以我有一个空的目标表,我想从现有的报告表中复制所有记录。但是,现有的 Report 表没有任何主键,而我的新目标表有。我想复制现有报告表中的所有记录,这些记录在“Report.field1”和“Report.field2”上不重复,并且它们在任何一个中都不为 NULL。

有没有一种快速而肮脏的方法来做到这一点?喜欢:

INSERT INTO target REPORT
ON CONFLICT SKIP

【问题讨论】:

【参考方案1】:

请看: How to avoid duplicate SQL data while executing the INSERT queries without source database

IF not exists(select * from Report where field1 = @field1 and field2 = @field2) and @field1 is not null and @field2 is not null
    INSERT INTO Report (..., ..., ...) 
        VALUES (..., ..., ...)

【讨论】:

原始表中有很多字段,我宁愿不必手动写出。有没有办法更简洁地构造这个语句并达到相同的结果? ***.com/questions/4526461/…

以上是关于SQL Server 将现有表复制到新表中但跳过重复记录的主要内容,如果未能解决你的问题,请参考以下文章

sql server 数据库中,2000W行的表数据添加到新表中,新表多几个字段

PL/SQL 仅使用游标将 2 个表中的数据检索到新表中

SQL之复制表

SQL Server如何将查询的内容保存到新的sql 表中

sql server 触发器一个结果集变化更新到新表

将 plsql 函数的值复制到新表中