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

时间:2010-03-16 18:32:31

标签: sql sql-server sql-update

其他开发人员更改了表userid的{​​{1}}列中的所有值。我需要更改它们,因为map也是userid表中的一个键。值得庆幸的是,由于不值得进入的原因,profilesmap共享另一个共同的列,profiles

因此,我希望获取employeeIduserid的所有值,并覆盖profiles userid匹配行中找到的值。

我的直觉是做这样的事情:

map

但是SQLServer 2005并不关心在UPDATE子句中有两个表。

有什么建议吗?

2 个答案:

答案 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

更新语法:http://msdn.microsoft.com/en-us/library/ms177523.aspx