热线电话: 18611015007 分享到:
首页>新闻中心>详细内容

数据库触发器怎么创建呢?步骤如下

  在SQL SERVER 2008中,DML触发器的实现使用两个逻辑表DELETED和INSERTED。这两个表是建立在数据库服务器的内存中,我们只有只读的权限。DELETED和INSERED表的结构和触发器所在的数据表的结构是一样的。

  当触发器执行完成后,它们也就会被自动删除:INSERED表用于存放你在操件insert、update、delete语句后,更新的记录。比如你插入一条数据,那么就会把这条记录插入到INSERTED表:DELETED表用于存放你在操作 insert、update、delete语句前,你创建触发器表中数据库。

  1:首先,我们来尝试创建一个触发器,要求就是在AddTable这个表上创建一个Update触发器,语句为:

  create trigger mytrigger on AddTable

  for update

  2: 然后就是sql语句的部分了,主要是如果发生update以后,要求触发器触发一个什么操作。这里的意思就是如果出现update了,触发器就会触发输出:the table was updated!---By 小猪也无奈。

  接下来我们来将AddTable表中的数据执行一个更改的操作:

  3: 执行后,我们会发现,触发器被触发,输出了我们设置好的文本:

  4:那触发器创建以后呢,它就正式开始工作了,这时候我们需要更改触发器的话,只需要将开始的create创建变为alter,然后修改逻辑即可:

  5:如果我们想查看某一个触发器的内容,直接运行:exec sp_helptext [触发器名]

  6:如果我想查询当前数据库中有多少触发器,以方便我进行数据库维护,只需要运行: select * from sysobjects where xtype='TR'

  7;我们如果需要关闭或者开启触发器的话,只需要运行:

  disable trigger [触发器名] on database --禁用触发器

  enable trigger [触发器名] on database --开启触发器

  8:那触发器的功能虽大,但是一旦触发,恢复起来就比较麻烦了,那我们就需要对数据进行保护,这里就需要用到rollback数据回滚~

  9:查询AddTable表,如果里面存在TableName=newTable的,数据就回滚,触发器中止,那我们再进行一下测试,对AddTable表进行更改,发现,触发update触发器之后,因为有数据保护,触发器中止:



 相关阅读:sql server 2008 触发器的语法创建

想了解更多?欢迎联系我们
服务邮箱 fei@bjjyhx.cn
周一至周五:9:00-18:00
热线电话 18611015007
周一至周五:9:00-18:00

在线表单

为了便于我们更好的为您服务,情正确填写一下信息,我们会在24小时内与您取得联系,并答复您的需求!

公司名称*
联  系  人*
联系电话*
详细地址*
产品描述*
留言内容*