如何不导入双行

时间:2018-06-23 07:05:36

标签: sql-server

我有一个文本文件,每天都会使用新数据进行更新。但是,当我将该文本导入到SQL Server中时,它仅添加了相同的数据,因此现在表中的数据增加了一倍。如何仅导入新数据?

我尝试了此代码,但它只是删除并再次输入。

SELECT DISTINCT * 
INTO tempdb.dbo.tmpTable
FROM ems

    DELETE FROM ems

    INSERT INTO ems
        SELECT * 
        FROM tempdb.dbo.tmpTable

    DROP TABLE tempdb.dbo.tmpTable
    GO

1 个答案:

答案 0 :(得分:0)

以下内容可能会有所帮助:

SELECT All_columns, row_number() over (partition by all_columns_except_first_two order by col_1 desc, col_2 desc) as rownum
INTO tempdb.dbo.tmpTable
FROM ems
group by other_columns

DELETE FROM ems

INSERT INTO ems
SELECT * 
FROM tempdb.dbo.tmpTable
where rownum = 1

DROP TABLE tempdb.dbo.tmpTable
GO

它将在文件中保留一个条目的最新记录(如果时间字段在前两列中)。