【发布时间】:2010-10-17 22:15:22
【问题描述】:
假设有 2 个表 Table1 { ID, Name, Other } 和 Table2 { ID, Name, Other }。除了在 Table1 中所有 Name 值都是 NULL 之外,它们都有相同的记录和相同的 ID。如何使用 T-SQL (SQL Server 2008) 将名称值从 Table2 导入 Table1?
【问题讨论】:
标签: sql sql-server sql-server-2008
假设有 2 个表 Table1 { ID, Name, Other } 和 Table2 { ID, Name, Other }。除了在 Table1 中所有 Name 值都是 NULL 之外,它们都有相同的记录和相同的 ID。如何使用 T-SQL (SQL Server 2008) 将名称值从 Table2 导入 Table1?
【问题讨论】:
标签: sql sql-server sql-server-2008
Update Table1
Set Table1.Name = Table2.Name
From
Table1 INNER JOIN Table2 on Table1.ID = Table2.ID
【讨论】:
您正在寻找 MERGE 命令,它类似于您可能在其他地方读过的 UPSERT。这是关于它的quick article。
【讨论】:
UPDATE Table1
SET Table1.Name = Table2.Name
FROM Table2
WHERE Table1.Id = Table2.Id
--AND Table1.Name IS NULL
【讨论】:
只需加入表格并更新:
update t1
set [Name] = t2.Name
from Table1 t1
inner join Table2 t2 on t2.ID = t1.ID
【讨论】: