gpt4 book ai didi

SQL Server - 在更新语句中加入或子查询?

转载 作者:行者123 更新时间:2023-12-04 23:45:48 25 4
gpt4 key购买 nike

是否有理由在性能方面使用这些 UPDATE 语句中的一个而不是另一个?

 UPDATE myTable
SET fieldx = 1
FROM myTable AS mt
, myView AS mv
WHERE mt.id = mv.id


UPDATE myTable
SET fieldx = 1
WHERE id IN ( SELECT id
FROM myView )

最佳答案

他们可能会得出相同的执行计划,这意味着没有区别。要确认,只需在打开“包含执行计划”选项的情况下在 SSMS 中尝试每一个。

事实上,我想要的是:

UPDATE mt
SET mt.fieldx = 1
FROM myTable mt
JOIN myView mv ON mt.ID = mv.ID

我更喜欢这种语法。不过,它也会得出相同的执行计划。

为了证明这一点,我对 UPDATE 语句的每个变体进行了测试。正如下面的执行计划所示,它们的结果都是一样的——都执行相同的操作:
alt text http://img707.imageshack.us/img707/7801/60422461.png


alt text http://img683.imageshack.us/img683/7874/41210682.png


alt text http://img708.imageshack.us/img708/5020/20506532.png

关于SQL Server - 在更新语句中加入或子查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2224298/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com