首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

触发器监控表操作(新增、批改、删除)

2012-08-30 
触发器监控表操作(新增、修改、删除)哪位同学,写过触发器监控表操作(新增、修改、删除),然后将记录到另一张表

触发器监控表操作(新增、修改、删除)
哪位同学,写过触发器监控表操作(新增、修改、删除),然后将记录到另一张表上?

[解决办法]

SQL code
create trigger trig_001 on dbo.表名for insert,update,deleteasbegin    insert into 日志表    select * From inserted        insert into 日志表    select * From deletedend
[解决办法]
SQL code
--try简单的例子create table subject( col1 int)create table t_record(  action_id    numeric(10) identity(1,1),  action_time  datetime,  action       varchar(10))--触发器create trigger trig_subject on subjectfor insert,update,deleteasbegin  declare @inserted int  declare @deleted int  select @inserted = count(*) from inserted  select @deleted = count(*) from deleted    if @inserted > 0 and @deleted > 0  begin    insert into t_record values(getdate(),'update')  end  else if @inserted > 0 and @deleted = 0  begin    insert into t_record values(getdate(),'insert')  end  else if @inserted = 0 and @deleted > 0  begin    insert into t_record values(getdate(),'delete')  endend--测试insert into subject values(1)结果如下/*1 2009-06-04 16:36:03.530 insert*/--结果如下update subject set col1 = 2 where col1=1/*1 2009-06-04 16:36:03.530 insert2 2009-06-04 16:36:22.390 update*/--结果如下delete subject where col1 = 2/*1 2009-06-04 16:36:03.530 insert2 2009-06-04 16:36:22.390 update3 2009-06-04 16:36:40.080 delete */
[解决办法]
SQL code
CREATE TRIGGER tt ON tb       FOR INSERT, UPDATE, DELETEASBEGIN      INSERT  INTO 日志表 SELECT  *, 'old' FROM    DELETED      INSERT  INTO 日志表 SELECT  *, 'new' FROM    INSERTED END 

热点排行