MSSQL网页编程之怎样利用SQL触发器举行备份数据库?
对于insert和delete,event中包含了插入/删除的记录的所有字段的值(太爽了。。)sql|触发器|备份|数据库起首,你必要创建测试数据表,一个用于拔出数据:test3,别的一个作为备份:test3_bak以下是援用片断为例:
createtabletest3(idintprimarykeynotnull
identity(1,1),unamevarchar(20),uageint);
createtabletest3_bak(idintprimarykeynot
nullidentity(1,1),bidint,unamevarchar(20),
uageint,activechar(1));
第二步,编写备份用的触发器,只要更新大概是拔出的时分才触发
以下是援用片断为例:
altertriggertest3_bak_insert_update
ontest3
forinsert,update
as
declare@idint
declare@unamevarchar(20)
declare@uageint
begin
select@id=id,@uname=uname,@uage=uagefrominserted
if@id0
begin
updatetest3_baksetactive=0wherebid=@id
insertintotest3_bak(bid,uname,uage,active)
values(@id,@uname,@uage,1)
end
end
第三步,测试数据:
上面是援用的片断为例:
insertintotest3(uname,uage)values(FLB,20)
insertintotest3(uname,uage)values(FLB1,21)
insertintotest3(uname,uage)values(FLB2,22)
updatetest3setuage=100whereid=27
deletefromtest3whereid=20
最初,你可本人接纳上面的查询踪两个表的数据变更:
以下是援用片断为例:
select*fromtest3
select*fromtest3_bak其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。 其实可以做一下类比,Oracle等数据库产品老早就支持了java编程,而且提供了java池参数作为用户配置接口。但是现在有哪些系统大批使用了java存储过程?!连Oracle自己的应用都不用为什么?! SQLServer的异构移植功能个人感觉最好了。(如果对比过SQLServer的链接服务器和Oracle的透明网关的朋友会发现SQLServer的sp_addlinkedserver(openquery)异构数据库系列比Oracle真是强太多了。) 习惯敲命令行的朋友可能会爽一些。但是功能有限。适合机器跑不动SQLServerManagementStudio的朋友使用。 我个人认为就是孜孜不懈的学习 having子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having条件显示特定的组,也可以使用多个分组标准进行分组。 很多书籍啊,不过个人认为看书太慢,还不如自己学。多做实际的东西,就会遇到很多问题,网上搜下解决问题。不断重复这个过程,在配合sql的F1功能。 其实可以做一下类比,Oracle等数据库产品老早就支持了java编程,而且提供了java池参数作为用户配置接口。但是现在有哪些系统大批使用了java存储过程?!连Oracle自己的应用都不用为什么?! 多加的系统视图和实时系统信息这些东西对DBA挑优非常有帮助,但是感觉粒度还是不太细。 你觉得我的非分区索引无法对起子分区,你可以提醒我一下呀!没有任何的提醒,直接就变成了非分区表。不知道这算不算一个bug。大家也可以试试。
页:
[1]