sql - How to get the action performed in trigger -
what want achieve in question if made update/delete/insert in 1 of table should insert record 1 of table logs purpose
i have 1 table test. suppose if insert below row in table test, should fire trigger , insert row in table logs
test
id | name | location 1 | test | america
log
id | updatetime | action ---------------------------------------------------------- 1 | 2017-04-06 16:51:18.190 | insert
and same if delete or update thing under action should have delete or update respectively
id | updatetime | action ---------------------------------------------------------- 1 | 2017-04-06 16:51:18.190 | insert 1 | 2017-04-06 16:51:18.190 | delete
i have created single trigger
create trigger abc on test after insert, update, delete begin declare @id int select @id = i.id inserted insert log values (@id, getdate()) end
from above trigger able id , updatetime, how action column action has been performed how achieve that. can have clue
you can create next approach determining action happens:-
declare @action char(1); set @action = (case when exists(select * inserted) , exists(select * deleted) 'u' -- set action updated. when exists(select * inserted) 'i' -- set action insert. when exists(select * deleted) 'd' -- set action deleted. end) -- getting id if @action = 'd' select @id=i.id deleted else -- insert or update select @id=i.id inserted
Comments
Post a Comment