首页 > 编程知识 正文

奇迹mu复古三端互通,奇迹mu网页

时间:2023-05-04 09:12:44 阅读:212057 作者:1707

数据库的触发器,可以帮我们完成很多事情,如人物创建后送点数、送MU币、送x店积分等等,一些保存到数据里初始化的东西,如果文件里没有控制项,是可以通过建立触发器来完成的。触发器太高深的东西,我们wydzx学起来费劲,下面说一些比较简单并且对我们配置奇迹非常有用的相关知识。

#### 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

~~~

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。