AI写作智能体 自主规划任务,支持联网查询和网页读取,多模态高效创作各类分析报告、商业计划、营销方案、教学内容等。 广告
数据库的触发器,可以帮我们完成很多事情,如人物创建后送点数、送MU币、送x店积分等等,一些保存到数据里初始化的东西,如果文件里没有控制项,是可以通过建立触发器来完成的。触发器太高深的东西,我们小白学起来费劲,下面说一些比较简单并且对我们配置奇迹非常有用的相关知识。 #### 1. 如何知道奇迹数库里有多少个触发器? 这要用到查寻数据库所有触发器的sql语句了,一般我们只要知道MuOnline这个数据库的所有这个数据触发器。就够了,下面用sql语句查询一下MuOnline这个数据库的所有触发器。 ~~~ select * from sysobjects where xtype='TR';--查询当前数据库所有的触发器 ~~~ 我在一个有触发器的端的MuOnline数据库里,运行上面的语句,得到下面的结果,含有10个触发器 ![查询数据触发器结果](https://box.kancloud.cn/8981a6cc91d8695124dbaeab021b3bf6_1025x203.png) #### 2. 具体看某条触发器的内容 想看看某条触发器都干了什么事情,就要用到下面的语句 ~~~ exec sp_helptext 触发器名; --如查询上面的"法师送点"这个触发器 exec sp_helptext 法师送点; --得到如下结果: CREATE TRIGGER 法师送点 ON dbo.[Character] AFTER INSERT AS SET NOCOUNT ON UPDATE Character SET Character.LevelUpPoint=6000 FROM Inserted Where Inserted.Class=0 and Character.name=Inserted.name SET NOCOUNT OFF ~~~ 从结果我们知道是法师一创建后就送了6000点 #### 3. 删除触发器 `drop trigger 触发器名` #### 4. 修改触发器 ~~~ alter trigger 触发器名 on {table_name | view_name} {for | After | Instead of } [ insert, update,delete ] as sql语句 ~~~ 例如要把上面的6000点送点,改为1000点,执行下面语句 ~~~ alter TRIGGER 法师送点 ON dbo.[Character] AFTER INSERT AS SET NOCOUNT ON UPDATE Character SET Character.LevelUpPoint=1000 FROM Inserted Where Inserted.Class=0 and Character.name=Inserted.name SET NOCOUNT OFF ~~~