create trigger tr_delete on 表
for delete
as
declare @s varchar(8000)
declare tb cursor local for
select sql='if exists(select 1 from sysobjects where name='''
+字段+''' and xtype=''V'') drop view ['+字段+']'
from deletedopen tb
fetch next from tb into @s
while @@fetch_status=0
begin
exec(@s)
fetch next from tb into @s
end
close tb
deallocate tb
for delete
as
declare @s varchar(8000)
declare tb cursor local for
select sql='if exists(select 1 from sysobjects where name='''
+字段+''' and xtype=''V'') drop view ['+字段+']'
from deletedopen tb
fetch next from tb into @s
while @@fetch_status=0
begin
exec(@s)
fetch next from tb into @s
end
close tb
deallocate tb
for delete
as
begin
declare @sql varchar(8000)
set @sql=''
select @sql='if exists(select 1 from sysobjects where name='''+colname+''' and xtyle='''v''')' drop view '+colname+' ' from deleted
exec(@sql)
end
create trigger trg_delete_tblname on tblname
for delete
as
begin
declare @sql varchar(8000)
set @sql=''
select @sql='if exists(select 1 from sysobjects where name='''+colname+''' and xtyle=''v'') drop view '+colname+' ' from deleted
exec(@sql)
end
for delete
as
declare @sql varchar(8000)
set @sql=''
select @sql=@sql+' if exists(select 1 from sysobjects where name='''
+字段+''' and xtype=''V'') drop view ['+字段+']'
from deletedexec(@s)
for delete
as
declare @sql varchar(8000)
set @sql=''
select @sql=@sql+' if exists(select 1 from sysobjects where name='''
+字段+''' and xtype=''V'') drop view ['+字段+'] '
from deletedexec(@sql)
select * from deleted
在被添加行的信息
select * from inserted
inserted表中记录了更新后记录的值
deleted 表中记录了更新前记录的值一次性插入多条语句当然是可能的啦,是否用游标看你的处理要求,如果能直接处理,就直接处理,如果要逐条处理,就用游标.
deleted 表是不是相当于临时表的意思,用于缓存与此次更新相关的记录的值?