TSQL-将数据从一个表复制到另一个表

时间:2019-01-16 11:20:00

标签: sql-server tsql

我正在将一个表的内容复制到另一个相同的表中。但是目标表中已经有数据。

目标表中的某些数据与源表具有相同的代码。

是否可以跳过重复项,并且在不失败的情况下不阻止其余数据的插入?

insert into [DB2].[dbo].[MAN] values([MAN],[DES])
SELECT [MAN]
      ,[DES]
FROM [DB1].[dbo].[MAN]

2 个答案:

答案 0 :(得分:1)

您可以使用NOT EXISTS

INSERT INTO [DB2].[dbo].[MAN] ([MAN], [DES])
    SELECT M.[MAN], M.[DES]
    FROM [DB1].[dbo].[MAN] AS M
    WHERE NOT EXISTS (SELECT 1 FROM [DB2].[dbo].[MAN] M1 WHERE M1.COL = M.COL);

您需要使用实际的列名更改M1.COL = M.COL,从中您可以识别重复的值。

答案 1 :(得分:0)

如果您有自己独特的col,那么您可以像这样去。

insert into [DB2].[dbo].[MAN] values([MAN],[DES])
SELECT [MAN]
      ,[DES]
FROM [DB1].[dbo].[MAN] WHERE uniqueCol NOT IN (SELECT uniqueCol FROM [DB2].[dbo].[MAN])

否则,添加几列以获得唯一的列并进行比较。