sql server 触发器对数据库进行数据备份的例子

发布时间:2019-07-14编辑:脚本学堂
本文介绍下,几个sql server触发器的例子,使用触发器对数据进行备份,有需要的朋友,可以参考下。

借助sql server触发器对数据进行备份操作。

首先,创建测试用数据表。
一个用于插入数据:news3。
另外一个作为备份:news3_bak。

代码:
 

复制代码 代码示例:

create table news3(id int primary key not null
identity(1,1),uname varchar(20),uage int);

create table news3_bak(id int primary key not null identity(1,1),bid int,uname varchar(20),
uage int,active char(1));

第二步,编写备份用的触发器,只有更新或插入时触发。
代码:
 

复制代码 代码示例:
alter trigger news3_bak_insert_update
 on news3
 for insert,update
 as
 declare @id int
 declare @uname varchar(20)
 declare @uage int
 begin
 select @id=id,@uname=uname,@uage=uage from inserted
 if @id<>0
 begin
 update news3_bak set active='0' where bid=@id
 insert into news3_bak(bid,uname,uage,active)
 values(@id,@uname,@uage,'1')
 end
 end

第三步,测试数据: 
 

复制代码 代码示例:
 insert into news3(uname,uage) values('FLB',20)
 insert into news3(uname,uage) values('FLB1',21)
 insert into news3(uname,uage) values('FLB2',22)
 update news3 set uage=100 where id=27
 delete from news3 where id=20

最后,采用以下方法查询跟踪两个表的数据变化:
 

复制代码 代码示例:
select * from news3
select * from news3_bak