根据TableA中存在的项目将TableB中缺少的项目插入TableB

时间:2013-09-24 19:58:54

标签: sql-server sql-server-2008-r2

我有两个表:TableA - 默认项列表。 TableB是TableA的副本,但可能缺少项目。我需要一个插入语句,将缺少的项插入TableB

TableA

Key varchar(10)

Rows:
Key1
Key2

TableB 
Key varchar(10)

Rows:
Key1

如何从TableA中选择所有缺少的项并插入TableB?换句话说,将Key2插入TableB。

使用Sql Server 2008R2。

2 个答案:

答案 0 :(得分:1)

您可以使用 LEFT JOIN

INSERT INTO TableB ([key])
SEECT a.[key]
FROM TableA a
LEFT JOIN TableB b
 ON a.[key] = b.[key]
WHERE b.[key] IS NULL

答案 1 :(得分:0)

这应该通过Table并根据表中的内容覆盖key2中的任何空白或空项(如果表有空白或空是一个不同的故事)

update TableB b
set b.key2 case b.key2
    when ' ' then
        select key2 from tableA where a.key1 = b.key1
    when null then
        select key2 from tableA where a.key1 = b.key1