UPDATE语句首先会将符合条件的数据检索出来。这与SELECT语句的检索方法相似,只是在数据上的锁会有一些差异。在SQL Server中,UPDATE语句会优先对数据添加更新锁(即Update Lock,后续将在介绍事务和锁的时候详细介绍该锁的特性和作用)。当确定是需要更新的数据时,再将更新锁转化为排他锁,然后才更新数据。而查询语句则是使用共享锁。
UPDATE语句与性能相关的注意事项,与SELECT语句类似,其性能同样取决于检索数据的数据量,以及过滤使用的字段的特征。UPDATE语句不支持ORDER BY排序和GROUP BY汇总。
由于UPDATE语句对数据加的是更新锁或排他锁,更容易并发阻塞,因此,我们应尽量保证更新语句高效,以减小阻塞的影响。