`
jyangzi5
  • 浏览: 208777 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

浅谈数据库触发器

 
阅读更多
触发器

  其是一种特殊的存储过程。一般的存储过程是通过存储过程名直接调用,而触发器主要是

  通过事件(增、删、改)进行触发而被执行的。其在表中数据发生变化时自动强制执行。

  常见的触发器有两种:after(for)、instead of,用于insert、update、delete事件。

  after(for)        表示执行代码后,执行触发器

  instead of        表示执行代码前,用已经写好的触发器代替你的操作

 

触发器语法:

  create trigger 触发器的名字   on 操作表

  for|after         instead of

  update|insert|delete

  as

  SQL语句

 

触发器实现原理图

 

触发器示例

Example1

 

--禁止用户插入数据(实际上是先插入,然后立刻将其删除!)

 

  create trigger tr_insert on bank

 

  for          --for表示执行之后的操作

 

  insert       --即先执行了插入操作,同时在临时表中保存了插入记录

 

  as

 

   --执行完插入之后,在新生成的表中将刚刚插入的那条记录删除,

 

   --而此时得到的刚刚插入的记录的id是通过临时表 inserted得到的

 

  delete * from bank where cid=(select cid from inserted)

 

 

 

  生成上面的触发器后,当用户再输入insert语句后就见不到效果了!

 

  如:insert into bank values('0004',10000),是插入不进数据库的。

 

Example2

--删除谁就让谁的账户加上10元

  create trigger tr_dalete on bank

  instead of

  delete

  as

  update bank balance=balance+10 where cid=(select cid from deleted)

  生成这个触发器之后,当用户输入delete语句后,对应的那个id不但没有被删除掉,而且他的账户增加了10元

 

  如:delete from bank where cid='0002',执行完这句话后,编号为0002的账户会增加10元

 

分享到:
评论

相关推荐

    浅谈SOL SERVER数据库触发器及应用.pdf

    浅谈SOL SERVER数据库触发器及应用.pdf

    浅谈SQL Server触发器之使用.pdf

    浅谈SQL Server触发器之使用.pdf

    浅谈SQL Server触发器功能与应用技巧.pdf

    浅谈SQL Server触发器功能与应用技巧.pdf

    浅谈SQL Server 2000触发器.pdf

    浅谈SQL Server 2000触发器.pdf

    浅谈基本触发器的逻辑结构和工作原理

    发器可以查询其他表,而且可以包含复杂的 SQL 语句。它们主要用于强制服从复杂的业务规则或要求。例如:您可以根据客户当前的帐户...在数据库操作中,我们可以通过关系、触发器、存储过程、应用程序等来实现数据操作

    浅谈数据库性能优化

    浅谈数据库性能优化 1.truncate、delete、drop的区别 truncate和delete只能删除数据,不删除表的结构。drop语句将删除表的结构,包括被依赖的约束(constrain)、触发器(trigger)、索引(index);依赖于该表的的...

    基础电子中的浅谈基本触发器的逻辑结构和工作原理

    发器可以查询其他表,而且可以包含复杂的 SQL 语句。它们主要用于强制服从复杂的业务规则或要求。例如:您可以根据客户当前的帐户状态,...在数据库操作中,我们可以通过关系、触发器、存储过程、应用程序等来实现数据

    浅谈MIS开发中对Oracle触发器的应用.pdf

    浅谈MIS开发中对Oracle触发器的应用.pdf

    浅谈MySQL中的触发器

    在很多时候,干得利索不如想的明白。方案应该根据场景来设计,不是盲目的依靠经验,当然这也算新... 先前已经把线上邮箱用户表同步到内网,可以做数据库复制,可论坛和邮箱的数据库字段有较大出入,还是要改大量代码

    浅谈MySql的存储引擎(表类型)

    什么是MySql数据库 通常意义上,数据库也就是...目前,它可以提供的功能有:支持sql语言、子查询、存储过程、触发器、视图、索引、事务、锁、外键约束和影像复制等。在后期,我们会详细讲解这些功能。 同Oracle 和SQ

    ASP.NET3.5从入门到精通

    7.1.3 存储过程和触发器 7.2 使用SQL Server 2005 管理数据库 7.2.1 初步认识SQL Server 2005 7.2.2 创建数据库 7.2.3 删除数据库 7.2.4 备份数据库 7.2.5 还原数据库 7.2.6 创建表 7.2.7 删除表 7.2.8 创建数据库...

    ASP.NET 3.5 开发大全11-15

    7.1.3 存储过程和触发器 7.2 使用SQL Server 2005 管理数据库 7.2.1 初步认识SQL Server 2005 7.2.2 创建数据库 7.2.3 删除数据库 7.2.4 备份数据库 7.2.5 还原数据库 7.2.6 创建表 7.2.7 删除表 7.2.8 创建数据库...

    ASP.NET 3.5 开发大全

    7.1.3 存储过程和触发器 7.2 使用SQL Server 2005 管理数据库 7.2.1 初步认识SQL Server 2005 7.2.2 创建数据库 7.2.3 删除数据库 7.2.4 备份数据库 7.2.5 还原数据库 7.2.6 创建表 7.2.7 删除表 7.2.8 创建数据库...

    ASP.NET 3.5 开发大全1-5

    7.1.3 存储过程和触发器 7.2 使用SQL Server 2005 管理数据库 7.2.1 初步认识SQL Server 2005 7.2.2 创建数据库 7.2.3 删除数据库 7.2.4 备份数据库 7.2.5 还原数据库 7.2.6 创建表 7.2.7 删除表 7.2.8 创建数据库...

    ASP.NET 3.5 开发大全word课件

    7.1.3 存储过程和触发器 7.2 使用SQL Server 2005 管理数据库 7.2.1 初步认识SQL Server 2005 7.2.2 创建数据库 7.2.3 删除数据库 7.2.4 备份数据库 7.2.5 还原数据库 7.2.6 创建表 7.2.7 删除表 7.2.8 创建数据库...

    ASPNET35开发大全第一章

    7.1.3 存储过程和触发器 7.2 使用SQL Server 2005 管理数据库 7.2.1 初步认识SQL Server 2005 7.2.2 创建数据库 7.2.3 删除数据库 7.2.4 备份数据库 7.2.5 还原数据库 7.2.6 创建表 7.2.7 删除表 7.2.8 创建数据库...

    asp.net知识库

    [ADO.NET]由数据库触发器引发的问题 为ASP.NET封装的SQL数据库访问类 DataTable.Select方法的性能问题 .NET 2.0里使用强类型数据创建多层应用 ADO.NET实用经验无保留曝光 有了System.Data.IDataReader,一切皆成数据 ...

Global site tag (gtag.js) - Google Analytics