仓酷云

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

[学习教程] 使用sp_settriggerorder设置触发器实行按次

[复制链接]
只想知道 该用户已被删除
跳转到指定楼层
#
发表于 2015-1-16 14:09:00 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
mysql使用内部操作字符集gbk来进行操作,即执行"SELECT*FROMtestWHEREname=xxxor1=1/*LIMIT1";从而注入成功明天看到有伴侣在群中问可否为触发器设置实行按次,有伴侣说触发器在数据库中主动实行,以是不克不及够设置实行按次。实在这类说法是不合错误的,我们能够使用sp_settriggerorder为部分触发器设置实行按次。

先看看sp_settriggerorder的功效申明:
sp_settriggerorder:指定第一个引发或最初一个引发的AFTER触发器。在第一个和最初一个触发器之间触发的AFTER触发器将按不决义的按次实行。

语法申明:
sp_settriggerorder[@triggername=][triggerschema.]triggername,
[@order=]value,
[@stmttype=]statement_type[,[@namespace=]{DATABASE|SERVER|NULL}]


参数申明:
@triggername=][triggerschema.]triggername
要设置或变动其按次的触发器的称号及其所属的架构。

[@order=]value
触发器的新按次的设置,能够是以下值中的恣意一个值。
First--触发器被第一个触发。
Last--触发器被最初一个触发。
None--触发器以不决义的按次触发。


[@stmttype=]statement_type
指定触发器的范例,能够是INSERT、UPDATE、DELETE、LOGON或用于引发DDL触发器的DDL事务中列出的任何Transact-SQL语句事务。

@namespace={DATABASE|SERVER|NULL}
假如triggername是DDL或登录触发器,则指定所创立的triggername是具无数据库局限仍是服务器局限。

前往值:
0(乐成)或1(失利)

注重:
1,当触发器被修正,那末对它的sp_settriggerorder设置也会生效,也就是说每次修正触发器后,你都必要从头使用sp_settriggerorder对实行按次举行设置。
2,统一范例的触发器(insert,update,delete)只能设置一个First与一个Last触发器,也就是说,只能设置一个开始实行的与最初实行的触发器,两头的就设置不了。

示例代码:
设置insert触发器ti_Storage_MoveDetail为第一个实行的触发器
sp_settriggerorderti_Storage_MoveDetail,first,insert


设置update触发器tu_Storage_MoveDetail为最初一个实行的触发器
sp_settriggerordertu_Storage_MoveDetail,last,update


以是,假如触发器不是insteadof触发器,并且每类(insert,update,delete)的触发器数目不凌驾3个,那我们就完整能够把持实行按次。在JOIN操作中(需要从多个数据表提取数据时),MySQL只有在主键和外键的数据类型相同时才能使用索引。
乐观 该用户已被删除
7#
发表于 2015-3-19 18:40:07 | 只看该作者
只能告诉你,学好数据库语言和原理,多见识几种数据库软件,比一棵树上吊死要好。
莫相离 该用户已被删除
6#
发表于 2015-3-5 11:46:21 | 只看该作者
我是新手,正在学习数据库和操作系统,深感理论的泛广,唯有一步一步来,但是又感觉时间不够,收集了很多资料却总是没能认真的看完,希望有一个讨论板块,大家共同解决,共同分享,共同努力
蒙在股里 该用户已被删除
5#
发表于 2015-2-16 23:12:26 | 只看该作者
但是随着数据量的增大,这种成本差距会逐渐减小,趋于相等。(500万数量级只相差10%左右)
精灵巫婆 该用户已被删除
地板
发表于 2015-2-6 15:48:47 | 只看该作者
微软对CLR作了大篇幅的宣传,这是因为数据库产品终于融入.net体系中。最开始我们也是狂喜,感觉对象数据库的一些概念可以实现了。
兰色精灵 该用户已被删除
板凳
发表于 2015-1-30 19:55:32 | 只看该作者
分区表效率问题肯定是大家关心的问题。在我的试验中,如果按照分区字段进行的查询(过滤)效率会高于未分区表的相同语句。但是如果按照非分区字段进行查询,效率会低于未分区表的相同语句。
若天明 该用户已被删除
沙发
发表于 2015-1-21 14:25:26 | 只看该作者
多走走一此相关论坛,多看一些实例开发,多交流0经验,没什么的,我也是刚学没多久!加油
再现理想 该用户已被删除
楼主
发表于 2015-1-18 07:09:35 | 只看该作者
如果处理少量数据,比如几百条记录的数据,我不知道这两种情况哪个效率更高,如果处理大量数据呢?比如有表中有20万条记录.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-16 07:44

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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