Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用其他表中的数据更新列?-SQL Server 12.0.5_Sql_Sql Server_Database_Sql Server 2012 - Fatal编程技术网

如何使用其他表中的数据更新列?-SQL Server 12.0.5

如何使用其他表中的数据更新列?-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

我正在尝试使用表“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.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)。。。。。