sql - 这些 SQL UPDATE 语句中的哪一个会更快?

标签 sql sql-server database tsql

哪个会更快?

方法一:

UPDATE table1
SET table1.column1 = table2.column1 
FROM table2
WHERE table1.column2 = table2.column2

方法B:

UPDATE table1
SET table1.column1 = table2.column1 
FROM table1
JOIN table2 on table1.column2 = table2.column2

它们会生成相同的执行计划吗?

在任何情况下我应该避免其中之一吗?

我做的一些测试几乎在同一时间执行,但总是很高兴听到第二个意见。

最佳答案

它们是等价的。您可以通过自己检查执行计划来验证这一点。第二个选项:

UPDATE table1
SET table1.column1 = table2.column1
FROM table1 JOIN
     table2 on table1.column2 = table2.column2

目前是编写查询的首选方法,因为它更清楚为什么要指定条件。

关于sql - 这些 SQL UPDATE 语句中的哪一个会更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7106890/

相关文章:

mysql - 在空单元格的情况下排除左连接

sql - Windows 服务还是 SQL 作业?

sql-server - Sql Server 2008 的更改通知

c# - Entity Framework 代码优先 : Using a database that doesn't need to be separately installed?

mysql - 需要 SQL View 创建查询帮助

sql - 如何在 SQL Server Management Studio 中关闭与本地数据库的所有连接?

sql - Rmarkdown - 使用表名作为动态 sql block 中的变量?

mysql - 将数百行数据与另一个表中的数据进行比较

c# - 从存储过程中返回错误代码值是好的做法吗?

sql-server - 如何插入默认值作为 SQL Server View 定义的一部分?