如何使用其他表中的数据更新列?-SQL Server 12.0.5
我正在尝试使用表“SC_PROD”中“custom_number_8”列中的数据更新表“SUS_WK”中的“效率”列。但我只想在满足某些要求时更新它,例如表“SUS_WK”中的“ID”与表“SC_PROD”中的“ID”匹配 我该怎么做 我尝试过这样做:如何使用其他表中的数据更新列?-SQL Server 12.0.5,sql,sql-server,database,sql-server-2012,Sql,Sql Server,Database,Sql Server 2012,我正在尝试使用表“SC_PROD”中“custom_number_8”列中的数据更新表“SUS_WK”中的“效率”列。但我只想在满足某些要求时更新它,例如表“SUS_WK”中的“ID”与表“SC_PROD”中的“ID”匹配 我该怎么做 我尝试过这样做: UPDATE SUS_WK SET efficiency = SC_PROD.custom_number_8 FROM SUS_WK t JOIN SC_PROD p ON t.id = p
UPDATE SUS_WK
SET efficiency = SC_PROD.custom_number_8
FROM SUS_WK t
JOIN SC_PROD p
ON t.id = p.id
当我尝试上面的代码时,出现以下错误:
无法绑定多部分标识符“SC\U产品\U计划\u PLND.自定义\u编号\u 8”
但我希望该代码的结果会使用表“SC_PROD”中“custom_number_8”列中的数据来更新“SUS_WK”中的“efficiency”列。您的思路是正确的。只需使用表别名而不是表名:
UPDATE t
SET efficiency = p.custom_number_8
FROM SUS_WK t JOIN
SC_PROD p
ON t.id = p.id;
我强烈建议在
更新中也使用表别名。SQL Server将解析表名,使其与t
相同,但这会使查询很难破译(因为对同一个表的引用有不同的别名)。He看起来您今天的键盘速度特别快。:)@SeanLange,他昨天打了这个答案。他只是在等马克提出问题。你真的很接近。您只需要将等号后面的部分转换为正确的select语句。我想你也需要用括号把它包装起来。你的标签上写的是SQL Server 2012,但标题似乎是v12.0.5-这将是SQL Server 2014(2012是v11.x.x)。。。。。