仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 625|回复: 8
打印 上一主题 下一主题

[学习教程] MSSQL网页编程之触发器计划技能与实例

[复制链接]
分手快乐 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:28:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
因此,我们的第一个“米”,就是二进制日志binlog必须是rowbased的。在rowbase下,二进制日志binlog同时记录了更新前后的整行记录。触发器|技能|计划
触发器计划技能与实例

在数据库计划中,有两种办法可设定主动化的材料处置划定规矩,一种是前提束缚,
一种是触发器,一样平常而言,前提束缚比触发器较简单设定及保护,且实行效力较
好,但前提束缚只能对材料举行复杂的栏位检点,当触及到多表操纵等庞大操
作时,就要用到触发器了.
一个数据库体系中有两个假造表用于存储在表中纪录修改的信息,分离
是:
假造表Inserted假造表Deleted

在表纪录新增时寄存新增的纪录不存储纪录
修正时寄存用来更新的新纪录寄存更新前的纪录
删除时不存储纪录寄存被删除的纪录

触发器的品种及触发机会
After触发器:触发机会在材料已变化完成后,它将对变化材料举行需要的
善后与处置,若发明有毛病,则用事件回滚(RollbackTransaction)
将此次操纵所更动的材料全体复兴。
Isteadof触发器:触发机会在材料变化前产生,且材料怎样变化取决于触发器

如今先容一下创立触发器的编写格局:

After范例:
CreateTrigger触发器称号
on表名
after操纵(insert,update)
as
Sql语句

Instead范例
CreateTrigger触发器称号
on表名
Insteadof操纵(update,delete)
as
Sql语句

实例1:
在定单(表orders)中的订购数目(列名为num)有变化时,触发器会先到客户(表Customer)中
获得该用户的信誉品级(列名为Level),然后再到信誉额度(Creit)中掏出该品级
允许的订购数目高低限,最初对照定单中的订购数目是不是切合限定。

代码:
CreateTriggernum_check
onorders
afterinsert,update
as
ifupdate(num)
begin
ifexists(selecta.*fromordersajoincustomerbona.customerid=b.customerid
joincreitconb.level=c.level
wherea.numbetweenc.upandc.down)
begin
rollbacktransaction
execmaster..xp_sendmailadministrator,客户的订购数目不切合限定
end
end
实例2:
有人为办理体系中,当公司对某员工甲的月薪举行调剂时,一般会先在表员工中修正薪资列,然后在
表员工纪录中修正薪资调剂工夫与薪资

Createtriggercompensation
on员工
afterupdate
as
if@@rowcount=0return
ifupdate(薪资)
begin
insert员工纪录
select员工遍号,薪资,getdate()
frominserted
end







先说DDL的分类。有一类DDL,是不需要重建表的,比如加非聚簇索引。这类操作其实不会丢数据,也是在原表上直接操作,对于我们“以恢复数据为目的”的闪回,是可以先忽略的。另外一类,则是会影响到表数据的操作。
柔情似水 该用户已被删除
沙发
发表于 2015-1-19 13:52:00 | 只看该作者
XML字段类型更好的解决了XML数据的操作。XQuery确实不错,但是个人对其没好感。(CSDN的开发者应该是相当的熟了!)
飘飘悠悠 该用户已被删除
板凳
发表于 2015-1-19 13:52:00 | 只看该作者
很多书籍啊,不过个人认为看书太慢,还不如自己学。多做实际的东西,就会遇到很多问题,网上搜下解决问题。不断重复这个过程,在配合sql的F1功能。
莫相离 该用户已被删除
地板
发表于 2015-2-1 19:59:10 | 只看该作者
你觉得我的非分区索引无法对起子分区,你可以提醒我一下呀!没有任何的提醒,直接就变成了非分区表。不知道这算不算一个bug。大家也可以试试。
admin 该用户已被删除
5#
发表于 2015-2-7 15:03:47 | 只看该作者
然后最好有实践机会,能够把实践到的和实践结合起来,其实理论思考是个非常困扰和痛苦的事情
谁可相欹 该用户已被删除
6#
发表于 2015-2-22 10:48:21 | 只看该作者
但换公司用MSSQL2K感觉自己好像根本就不了解MSSQL。什么DTS触发器以前根本没用过。
变相怪杰 该用户已被删除
7#
发表于 2015-3-7 00:07:02 | 只看该作者
代替了原来VB式的错误判断。比Oracle高级不少。
老尸 该用户已被删除
8#
发表于 2015-3-13 23:07:20 | 只看该作者
where子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行。
透明 该用户已被删除
9#
发表于 2015-3-20 21:10:56 | 只看该作者
也可谈一下你是怎么优化存储过程的?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-22 23:56

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表