其他开发人员更改了表userid
的{{1}}列中的所有值。我需要更改它们,因为map
也是userid
表中的一个键。值得庆幸的是,由于不值得进入的原因,profiles
和map
共享另一个共同的列,profiles
。
因此,我希望获取employeeId
中userid
的所有值,并覆盖profiles
userid
匹配行中找到的值。
我的直觉是做这样的事情:
map
但是SQLServer 2005并不关心在UPDATE子句中有两个表。
有什么建议吗?
答案 0 :(得分:6)
您可以在更新中使用FROM子句:
UPDATE m
SET m.userid = profiles.userid
from map m
inner join profiles on m.employeeId = profiles.employeeId
答案 1 :(得分:3)
在T-SQL语法中,Update部分包含您要更新的内容,FROM 可能包含其他数据源。
尝试以下
UPDATE map
SET map.userid = profiles.userid
FROM profiles
WHERE map.employeeId = profiles.employeeId