仓酷云

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

[学习教程] 使用Sql语句删除数据库中一切触发器

[复制链接]
小女巫 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 14:07:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
因此我们的保存数据方法就是:在删除的动作开始之前,把表数据备份起来,然后留一个空表,在空表上执行“删除”操作。假如必要一次删撤除数据库中一切触发器,还得用游标,我们能够利sys.triggers视图查出数据库中一切触发器,然后使用游标遍历sys.triggers中一切纪录,同时天生删除触发器的sql语句并实行就好了。

以下是删除一切数据库中一切触发器的示例
declare@sqlvarchar(1000)
declare@triggernamevarchar(100)
declareresult_curcursorlocalfor
selectnamefromsys.triggers

openresult_cur
fetchnextfromresult_curinto@triggername
while@@fetch_status=0
begin
set@sql=droptrigger+@triggername
exec(@sql)
fetchnextfromresult_curinto@triggername
end
closeresult_cur
deallocateresult_cur
对于insert和delete,event中包含了插入/删除的记录的所有字段的值(太爽了。。)
变相怪杰 该用户已被删除
沙发
发表于 2015-1-18 12:03:24 | 只看该作者
在select语句中可以使用groupby子句将行划分成较小的组,然后,使用聚组函数返回每一个组的汇总信息,另外,可以使用having子句限制返回的结果集。
深爱那片海 该用户已被删除
板凳
发表于 2015-1-25 10:53:50 来自手机 | 只看该作者
个人感觉没有case直观。而且默认的第三字段(还可能更多)作为groupby字段很容易造成新手的错误。
愤怒的大鸟 该用户已被删除
地板
发表于 2015-2-2 21:54:36 | 只看该作者
Mirror可以算是SQLServer的Dataguard了。但是能不能被大伙用起来就不知道了。
第二个灵魂 该用户已被删除
5#
发表于 2015-2-8 08:09:14 | 只看该作者
语句级快照和事务级快照终于为SQLServer的并发性能带来了突破。个人感觉语句级快照大家应该应用。事务级快照,如果是高并发系统还要慎用。如果一个用户总是被提示修改不成功要求重试时,会杀人的!
爱飞 该用户已被删除
6#
发表于 2015-2-25 04:45:24 | 只看该作者
但换公司用MSSQL2K感觉自己好像根本就不了解MSSQL。什么DTS触发器以前根本没用过。
灵魂腐蚀 该用户已被删除
7#
发表于 2015-3-7 17:33:06 | 只看该作者
对一张百万级别的表建游标,同时又没有什么过滤条件,取得游标效率是如果直接SQL查询百万条数据;如果再对每条记录做处理,耗时将更长。
柔情似水 该用户已被删除
8#
发表于 2015-3-15 10:42:57 | 只看该作者
语句级快照和事务级快照终于为SQLServer的并发性能带来了突破。个人感觉语句级快照大家应该应用。事务级快照,如果是高并发系统还要慎用。如果一个用户总是被提示修改不成功要求重试时,会杀人的!
冷月葬花魂 该用户已被删除
9#
发表于 2015-3-22 01:09:26 | 只看该作者
原理很简单,对要求长时间计算某一时间点的报表生成和防用户操作错误很有帮助。但是比起Oracle10g的闪回技术还是细粒度不够。可惜!
小魔女 该用户已被删除
10#
发表于 2015-3-22 01:09:26 | 只看该作者
只能告诉你,学好数据库语言和原理,多见识几种数据库软件,比一棵树上吊死要好。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-22 18:17

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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