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
------解决方案--------------------还是实践出真理啊~
------解决方案--------------------