我正在将一个表的内容复制到另一个相同的表中。但是目标表中已经有数据。
目标表中的某些数据与源表具有相同的代码。
是否可以跳过重复项,并且在不失败的情况下不阻止其余数据的插入?
insert into [DB2].[dbo].[MAN] values([MAN],[DES])
SELECT [MAN]
,[DES]
FROM [DB1].[dbo].[MAN]
答案 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])
否则,添加几列以获得唯一的列并进行比较。