首页 > 解决方案 > SQL Server如何将一个表中的列复制到另一个表中

问题描述

我想将列 state_name 从表状态复制到表区。这是我的查询。

此代码适用于 mysql 但不适用于 SQL Server

UPDATE district,state
SET    district.state_name = state.state_name
WHERE  district.state_id = state.id

在此处输入图像描述

这是state桌子

在此处输入图像描述

这是district桌子

标签: sqlsql-server

解决方案


在 SQL Server 中,相应的语法可能是:

UPDATE district
     SET state_name = s.state_name
    FROM state s
    WHERE district.state_id = s.id;

这更常使用显式编写JOIN

UPDATE d
     SET state_name = s.state_name
    FROM district d JOIN
         state s
         ON d.state_id = s.id;

但是,您可能根本不应该更新该值。只需JOIN在需要时使用 a 来获取州名。


推荐阅读