日期:2014-05-17  浏览次数:20387 次

update 操作是先delete再insert嗎?
update 操作是先delete再insert嗎?
update delete insert

------解决方案--------------------
我印象里面是有这种说法。执行计划里面应该有
------解决方案--------------------
参考一下这个

http://bbs.csdn.net/topics/390313644
------解决方案--------------------
这得分SQL版本.以及你的UPDATE如何做,参考楼上的网址.SQL2K的有些利用LOG 查到是DELETE再INSERT的

------解决方案--------------------
我的是的
create table A (id int,col int) insert A select 1,1 union allselect 2,2 union allselect 3,3    create table C(id int identity(1,1),UpdateType nvarchar(10))   create trigger JiLu on A for insert,update,deleteas begin   Declare @updateType as nvarchar(10)    set @updateType=''   if exists(select 1 from inserted)     begin      if exists(select 1 from deleted)          set @updateType='Update'      else          set @updateType='Insert'   end   else       set @updateType='Delete'        if @updateType<>''      insert C(UpdateType) select @updateType end

------解决方案--------------------
应该是的吧

因为触发器中的两个魔术表

当触发器被触发时,系统会自动在内存中创建deleted表和inserted表,这2张表存在与内存而非数据库中。只读表,不可修改,而且表结构与对应的表或者视图的表结构一致,当触发器执行完成后,系统自动删除。

参考
------解决方案--------------------
执行计划应该也可以看出来,另外分析LOG也可以
------解决方案--------------------
good post,learning
------解决方案--------------------
还是实践出真理啊~
------解决方案--------------------