UPDATE table1
SET col = 1
WHERE col2 = 'xyz'
UPDATE a
SET col = 1
FROM table1 a
WHERE col2 = 'xyz'
哪个是首选?这两个简单的SQL Update语句有什么区别吗?
我可以发现的一个区别是第二个语句允许在'FROM'语句附近使用WITH NO LOCK。但是,在更新语句附近使用时,它会提供与第一条语句相同的错误消息。
对于INSERT,UPDATE或DELETE语句的目标表,不允许使用NOLOCK和READUNCOMMITTED锁提示。
感谢这么多
您的具体示例没有差别。迄今给出的答案提到了联接的可能性。但应该警告,连接可能会很危险 - 如果连接的结果意味着目标表中的一行已经从其他表中连接到* multiple *行,并且更新基于其他表中的值实际上用于执行更新的行是不确定的。 – 2012-04-04 08:23:07