触发器学习资料.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
触发器学习资料

触发器 触发器是SQL Server提供给程序员和数据库分析员确保数据完整性的一种方法。这些方法对于那些经常被大量的不同应用程序访问的数据库相当有用,因为它们使数据库增强了应用规则,而应用规则是依赖于应用软件的。 SQL Server触发器的概念 SQL Server有效地管理信息的能力来源于它在系统中控制数据的能力。存储过程的建立,使用户能够在服务器上执行逻辑,通过规则和默认值去帮助数据库更进一步地管理信息。SQL Server在信息被写入数据库之前确认规则和默认值。这对于信息是一种“预过滤器”,并且能基于数据项控制数据库活动的作用阻止数据项的活动。 触发器是在数据更新后执行的“后置过滤器”,并且 SOL Server已经确认了这些规则、默认值等。 触发器是 SQL Server执行的特殊类型的存储过程,它发生在对于一个给定表的插入、修改或删除操作执行后。由于触发器是在操作有效执行后才被运行,在修改中它们代表“最后动作”。假如触发器导致的一个请求失败的话,SOL Server将拒绝信息更新,并且对那些倾向于事务处理的应用程序返回一个错误消息。触发器最普遍的应用是实施数据库中的商务规则,当然在维持引用完整性方面,外键要比触发器更快,但触发器能够维持那些外键所不能处理的复杂关系。 触发器不会明显影响服务器的性能。它们经常被用于增强那些在其他的表和行上进行很多级联操作的应用程序的功能。 2创建触发器 创建触发器的用户必须是该数据库的拥有者,当添加一个触发器到列、行或表的时候,就会改变怎样使表能够被访问,怎样使其他对象能够与之关联等。因此,实际上正在改变数据库的模式。当然这种类型的操作为数据库拥有者所保留,以便防止有人无意中修改了系统的布局格式。 创建触发器相当于说明一个存储过程,并且它有相似的语法。 ⑴ 创建触发器的语法: CREATE TRIGGER trigger_name ON table [WITH ENCRYPTION] FOR [DELETE][,][INSERT][,][UPDATE] [WITH APPEND] [NOT FOR REPLICATION] AS Sql_statement […n] │ FOR [INSERT][,][UPDATE] [WITH APPEND] [NOT FOR REPLICATION] AS IF UPDATE column [ AND│OR UPDATE column ] […n] │IF (COLUMNS_UPDATED()bitwise_operator)updated_bitmask comparison_operator column_bitmask[…n] sql_statement[…n] 上述语句中的trigger_name为所定义的触发器名称;关键字INSERT,UPDATE ,DELETE 定义了触发器的作用域,后者决定了启动触发器的操作; Sql_statement为包含在触发器中的任何合法的SQL语句。 ⑵用SQL Enterprise Manager来创建触发器 在Windows开始菜单中执行“程序|Microsoft SQL Server 7.0|Enterprise Manager”命令,进入Enterprise Manager界面。在Enterprise Manager中展开SQL Server Group,再展开Database项,选择要创建触发器的数据库(如PROJECT),再选中要创建触发器的表(如J),按右键,在弹出的菜单上选择All Tasks命令,再选Manage Triggers命令,如图33 所示,弹出一个“Trigger properties…”窗口,如图34 所示,在该窗口中输入触发器代码。 3.Inserted和deleted 表 当触发器被执行时,SQL Server创建一个或两个临时表(Inserted或者deleted 表)。当一个记录插入到表中时,相应的插入触发器创建一个inserted表,该表镜像该触发器相连接的表的列结构。例如,当用户在J表中插入一行时,J表的触发器使用J表的列结构创建inserted表。对于插入到J表的每一行,相应地在inserted表中也包括该行。 deleted表也镜象触发器相连接的表的列结构。当执行一条DELETE语句时从表中删除的每一行都包含在删除触发器内的deleted表中。 被UPDATE语句触发的触发器创建两个表inserted和deleted表,这两个表和它们相连接的表有相同的列结构。deleted 和inserted表分别包含相连接表中数据的“前后”快照。例如,假设用户执行下面的语句: UPDATE J SET JNO ’J10’ WHERE JNO ’S8’

文档评论(0)

ma33756 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档