当前位置: 首页 > 图文教程 > 数据库 > MSSQL > 触发器对SQL Server数据库进行备份

MSSQL
SQL语句和存储过程 查询语句的流程控制
将表数据生成SQL脚本的存储过程
SQL Server 2005 常见问题解答
在SQL2005 轻松配置SSIS包
SQL Server 服务器安装剖析
SQL Server数据库检修
用户自定义的数据库修复
如何修复SQLSERVER 数据库置疑之
SQL中与IP相关的常见问题
动态SQL语句
从SQL中的一个表中导出HTML文件表格
在SQL中删除重复记录(多种方法)
SQLServer和Oracle常用函数对比
删除全文索引
复制表结构的通用存储过程
取汉字拼音首字母的存储过程
SQL Server中格式化表中的数据
SQL SERVER的命名规则
SQL server锁的机制
用脚本缩小数据库日志

MSSQL 中的 触发器对SQL Server数据库进行备份


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-30   浏览: 79 ::
收藏到网摘: n/a

问:如何用触发器对SQL Server数据库进行数据备份?

答:首先,你需要建立测试数据表,一个用于插入数据:test3,另外一个作为备份:test3_bak

以下是引用片段:

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

第二步,编写备份用的触发器,只有更新或者是插入的时候才触发

以下是引用片段:

alter trigger test3_bak_insert_update
on test3
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 test3_bak set active='0' where bid=@id
insert into test3_bak(bid,uname,uage,active)
values(@id,@uname,@uage,'1')
end
end

第三步,测试数据:

下面是引用的片段:

insert into test3(uname,uage) values('FLB',20)
insert into test3(uname,uage) values('FLB1',21)
insert into test3(uname,uage) values('FLB2',22)
update test3 set uage=100 where id=27
delete from test3 where id=20

最后,你可自己采用下面的查询踪两个表的数据变化:

以下是引用片段:

select * from test3
select * from test3_bak