使用表 Y 中的值填充表 X 中的列
一位开发人员同事更改了表 map
的 userid
列中的所有值。我需要将它们改回来,因为 userid
也是 profiles
表中的键。值得庆幸的是,由于不值得深究的原因,map
和 profiles
共享另一个共同列,employeeId
。
因此,我想获取在 profiles
中找到的 userid
的所有值,并覆盖在 userid
的匹配行中找到的值。 >地图。
我的本能是做这样的事情:
UPDATE map,profiles
SET map.userid = profiles.userid
WHERE map.employeeId = profiles.employeeId
但是 SQLServer 2005 不关心 UPDATE 子句中有两个表。
有什么建议吗?
A fellow developer changed all the values in the userid
column of table map
. I need them changed back, because userid
is also a key in the profiles
table. Thankfully, for reasons that aren't worth going into, map
and profiles
share another column in common, employeeId
.
So I'd like to take all the values for userid
as found in profiles
and overwrite the values found in userid
the matching row of map
.
My instinct is to do something like this:
UPDATE map,profiles
SET map.userid = profiles.userid
WHERE map.employeeId = profiles.employeeId
But SQLServer 2005 doesn't care to have two tables in the UPDATE clause.
Any suggestions?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以在更新中使用 FROM 子句:
You can have FROM clause in the update:
在 T-SQL 语法中,Update 部分包含要更新的内容,FROM 可能包含其他数据源。
尝试以下
更新语法: http://msdn.microsoft.com/en-我们/library/ms177523.aspx
In T-SQL syntax, the Update portion contains what you want to update, and the FROM may contain additional source(s) of data.
Try the following
Update Syntax: http://msdn.microsoft.com/en-us/library/ms177523.aspx