我在SQL Server 2008环境中有两个表,结构如下
Table1
- ID
- DescriptionID
- Description
Table2
- ID
- Description
Table1.DescriptionIDMap到Table2.ID。但是,我不再需要它了。我希望执行批量更新,将Table1的Description属性设置为Table2中与之关联的值。换句话说,我希望执行如下操作:
UPDATE
[Table1]
SET
[Description]=(SELECT [Description] FROM [Table2] t2 WHERE t2.[ID]=Table1.DescriptionID)
但是,我不确定这是不是合适的方法。有人能告诉我怎么做吗?
6条答案
按热度按时间ghg1uchk1#
你的方法是正确的,下面是你可以做到的另一种方法:
嵌套的选择是执行连接的一个很长的方法。
z18hc3ub2#
你的方法是可以的
也许稍微清楚一点(反正对我来说!)
这个查询和您的查询应该运行相同的性能,因为它是相同的查询,只是布局不同。
ctrmrzij3#
您可以使用
JOIN
通过常规UPDATE
来完成此操作9avjhtql4#
或者您可以直接更新而不使用join,如下所示:
fnx2tebb5#
您在问题中发布的SQL是一种方法,SQL中的大多数内容都有不止一种方法。
如果你打算在一个PROD数据库上运行它,最好先创建一个快照或镜像,然后测试它。验证数据是否如你所期望的那样结束了几个记录。如果你满意,在真实的的数据库上运行它。
h4cxqtbf6#