gpt4 book ai didi

sql - 这两个简单的 SQL 更新语句之间有什么区别吗?

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

UPDATE table1
SET col = 1
WHERE col2 = 'xyz'


UPDATE a
SET col = 1
FROM table1 a
WHERE col2 = 'xyz'

哪个是首选?

我发现的一个区别是第二个语句允许在“FROM”语句附近使用 WITH NO LOCK。但是在更新语句附近使用时,它会给出与第一条语句相同的错误消息

INSERT、UPDATE 或 DELETE 语句的目标表不允许使用 NOLOCK 和 READUNCOMMITTED 锁定提示。

非常感谢

最佳答案

它们是一样的。

如果 UPDATE 语句只涉及访问单个表,则第一个更干净/更简单。

如果您需要这样做,例如一个 JOIN,然后为您的第二个示例分配一个别名是(IMO)清洁器,例如:

UPDATE a
SET a.Col = 1
FROM TableA a
JOIN TableB b ON a.Id = b.Id
WHERE b.Something = '123'

顺便说一句,在要更新的表上指定 NOLOCK 提示是没有意义的,所以不要将其视为一个原因。

关于sql - 这两个简单的 SQL 更新语句之间有什么区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10007288/

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