sql update 执行删除然后插入吗?

jun*_*ich 5 t-sql database sql-server

Sql server 究竟是如何执行更新操作的?它会进行就地更新吗?或者它会删除然后插入受影响的每一行?我知道更新操作类似于删除操作,然后将旧值的插入存储在已删除中,并将新值存储到插入...

有人告诉我更新操作是通过删除然后插入来完成的,但我不确定为什么会这样实现。请赐教。

Tei*_*ark 4

MSDN 更新部分

当 UPDATE 语句导致以下任一操作时,数据库引擎会将部分更新转换为完整更新:

  • 更改分区视图或表的键列。

  • 修改多行并将非唯一聚集索引的键更新为非常量值。

以及部分更新

部分更新事务直接在表列的用户定义位置写入字符串,而不像完全更新中那样发出删除和替换命令。

部分更新不支持多字节字符集转换。部分更新支持仅限于 Microsoft SQL Server。

我做了一些搜索,看来您问题的答案取决于您要更新的内容。

希望这可以帮助。