如果很难 最后面那个条件就不要了 ,全部拿过来吧 我把我写的代码贴给你们看看,帮我纠正下。
create trigger
BMS_STUFF_trigger
on BMS_STUFF
after insertas
begin
insert into BMS_STUFF_history
getdate(),user_name(),'insert',select * from deleted
end
create trigger
BMS_STUFF_trigger
on BMS_STUFF
after insertas
begin
insert into BMS_STUFF_history
getdate(),user_name(),'insert',select * from deleted
end
a_tr
on a
after insert
as
begin
insert into b
'insert' ,select * from deleted
end
上面那个弄错了 ,是我写的别的表的触发器,这个是对应于题目意思的,高手帮帮忙。
on a
after insert
as
begin
insert into b(type,iname,birthday) select 'insert',iname,birthday from inserted
endcreate trigger trig_update
on a
after update
as
begin
insert into b(type,iname,birthday) select 'update',iname,birthday from deleted
end
create trigger trig_delete
on a
after delete
as
begin
insert into b(type,iname,birthday) select 'delete',iname,birthday from deleted
end
create trigger
a_tr
on a
after insert
as
begin
insert into b
select 'insert', * from deleted
end
把 'insert','update','delete' 寫在select 語句中.
a_tr_insert
on a
after insert
as
begin
insert into b
select 'insert' ,* from inserted
end gocreate trigger
a_tr_delete
on a
after delete
as
begin
insert into b
select 'delete' ,* from deleted
end
gocreate trigger
a_tr_update
on a
after update
as
begin
insert into b
select 'update before' ,* from deleted
union all
select 'update after' ,* from inserted
end
go
create trigger
a_tr
on a
after update,insert,delete
as
begin
declare @op varchar(30)
if not exists (select 1 from deleted)
set @op = 'insert'
else if not exists (select 1 from inserted)
set @op = 'delete'
else
set @op = 'update'
insert into b
select case when @op = 'update' then 'update before' else @op end ,* from deleted
union all
select case when @op = 'update' then 'update after' else @op end ,* from inserted
end
go