Sql 使用表Y中的值填充表X中的列

Sql 使用表Y中的值填充表X中的列,sql,sql-server,sql-update,Sql,Sql Server,Sql Update,另一位开发人员更改了表map的userid列中的所有值。我需要将它们更改回来,因为userid也是profiles表中的一个键。谢天谢地,出于不值得深入探讨的原因,map和profiles共享另一个共同的专栏,employeeId 因此,我想将userid的所有值都作为在profiles中找到的值,并覆盖在匹配的map行中的userid中找到的值 我的本能是这样做: UPDATE map,profiles SET map.userid = profiles.userid WHERE map.em

另一位开发人员更改了表map的userid列中的所有值。我需要将它们更改回来,因为userid也是profiles表中的一个键。谢天谢地,出于不值得深入探讨的原因,map和profiles共享另一个共同的专栏,employeeId

因此,我想将userid的所有值都作为在profiles中找到的值,并覆盖在匹配的map行中的userid中找到的值

我的本能是这样做:

UPDATE map,profiles
SET map.userid = profiles.userid
WHERE map.employeeId = profiles.employeeId
但是SQLServer2005不希望在UPDATE子句中有两个表


有什么建议吗?

在T-SQL语法中,更新部分包含要更新的内容,而FROM可能包含其他数据源

试试下面的方法

UPDATE map
SET map.userid = profiles.userid
FROM profiles
WHERE map.employeeId = profiles.employeeId

更新语法:

在T-SQL语法中,更新部分包含要更新的内容,而FROM可能包含其他数据源

试试下面的方法

UPDATE map
SET map.userid = profiles.userid
FROM profiles
WHERE map.employeeId = profiles.employeeId

更新语法:

您可以在更新中使用FROM子句:

UPDATE m 
SET m.userid = profiles.userid
from map m
inner join profiles on m.employeeId = profiles.employeeId

您可以在更新中使用FROM子句:

UPDATE m 
SET m.userid = profiles.userid
from map m
inner join profiles on m.employeeId = profiles.employeeId

这个别名的形式更清晰,伊姆霍。它更明确地将更新与来自的链接起来。它更明确地将更新与来自的链接。