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



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

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

是否可以跳过重复项而不阻止其余数据的插入而不会失败?

insert into [DB2].[dbo].[MAN] values([MAN],[DES])
SELECT [MAN]
      ,[DES]
FROM [DB1].[dbo].[MAN]
您可以使用

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,从中可以识别重复值。

如果你有你独特的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])

否则,附加几列以获得唯一的列并像这样进行比较。

最新更新