将数据从一个表插入另一个表,留下已存在的行

时间:2014-01-14 09:47:29

标签: sql sql-server sql-server-2008 tsql sql-server-2005

将数据从一个表插入另一个表通常很简单:

SELECT * INTO A FROM B

但出于好奇,假设我有两张表tbl_Atbl_B。我在tbl_B中有100条记录,在tbl_A中有20条记录(其中一些可能在两个表中都很常见),我想将tbl_B中的行插入到tbl_Atbl_A'

中尚未出现

另外,假设两个表都有标识字段。

3 个答案:

答案 0 :(得分:1)

您可以使用MERGE命令

MS tech中的描述

http://msdn.microsoft.com/en-us/library/bb510625.aspx

答案 1 :(得分:0)

您可以使用NOT EXISTS

INSERT INTO tbl_A 
    SELECT IdCol, Col2, Col3
    FROM dbo.tbl_B B
    WHERE NOT EXISTS(SELECT 1 FROM tbl_A A2 WHERE A2.IdCol = B.IdCol)

答案 2 :(得分:0)

我认为这应该有效。

INSERT INTO tbl_A (IdCol, Col2, Col3)
(SELECT IdCol, Col2, Col3 FROM dbo.tbl_B AS b 
WHERE b.IdCol NOT IN (SELECT Distinct IdCol FROM tbl_A))