SQL Server - 同步两个具有相同结构的表

时间:2013-05-24 18:51:52

标签: sql-server

我有两个使用相同结构和数据类型创建的表。某些值会添加到Table1中,某些值会添加到Table2中。现在,我喜欢以某种方式将两个表(同步它们)与它们缺失的值一起插入。我将使用Col1来比较两个表。请参阅下面的示例,我希望得到的结果。

表1

Col1 Col2
v1   1
v2   2
v3   3
v6   6

表2

Col1 Col2
v1   1
v4   4
v5   5

Table1或Table2的结果将是

v1   1
v2   2
v3   3
v4   4
v5   5
v6   6

谢谢

2 个答案:

答案 0 :(得分:0)

INSERT INTO Table1
SELECT Col1, Col2
FROM
    Table2 t2
    LEFT JOIN Table1 t1 ON t1.Col1 = t2.Col1
WHERE
    t1.Col1 IS NULL
GO

INSERT INTO Table2
SELECT Col1, Col2
FROM
    Table1 t1
    LEFT JOIN Table2 t2 ON t2.Col1 = t1.Col1
WHERE
    t2.Col1 IS NULL
GO

答案 1 :(得分:0)

这是一种方法,从Table2中插入Table1中尚不存在的行;

INSERT INTO Table1
  SELECT col1, col2 FROM Table2 
  WHERE NOT EXISTS (
    SELECT 1 FROM Table1 
    WHERE Table1.Col1 = Table2.Col1
  );

An SQLfiddle to test with