触发器与游标.pptVIP

  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文档。上传文档
查看更多
第8章 触发器与游标 触发器是客户/服务器数据库的一种关键特性。使用触发器,开发人员可以在数据库引擎上稳固的实现复杂的、定制的业务。 游标是一种机制,对表中检索出的数据进行操作的灵活手段。 8.1 触发器 (P192) 触发器是一种特殊类型的存储过程,不同于前面所讲的存储过程,主要通过事件触发而被执行。 当对某一个表进行update、delete、insert等操作时,SQLServer会自动执行触发器所事先定义好的语句。 8.1.1 触发器的作用(P192) 触发器的主要作用是能实现主键和外键所不能保证的、复杂的参照完整性和数据的一致性。 1.可以调用存储过程 2.强化数据条件约束 3.跟踪数据库内数据变化 4.级联合并运行 5.总之触发器可以解决高级形式的业务和复杂行为限制,实现定制记录。 8.1.2 触发器的分类(P193) 1.事后触发器----只能定义在表上,可以针对表的同一操作定义多个触发器。在表上只能为每一个insert、update、delete操作指定一个事后触发器。 2.替代触发器并不执行预定的动作,而仅仅执行触发器本身的代码。对于每种操作insert、update、delete只能定义一个替代触发器。 8.1.3 创建与执行触发器(P193) 创建事后触发器: Create trigger 触发器名 on 表名[with encryption] for insert[,update,delete] as Begin 命令行或程序块 End 8.1.3 创建替代触发器(P194) Create trigger 触发器名 on 表名或视图名 instead of insert[,update,delete] as Begin 命令行或程序块 End 触发器的有关规则与条件 触发器名在数据库中是唯一的 触发器只能关联表或视图,利用with encryption可以加密触发器中的代码,增加安全性。 事后触发器只能定义在表,不能定义到视图上;而替代触发器可以定义在视图上。 实例1: 创建一个触发器,当对仓库表update时,创建一个数据库新表并向新表中插入三条记录(P194) Create trigger hytrigger1 on 仓库 for update as Begin Create table triuser( Userid int identity (1,1) primary key, Username varchar(50), Userpwd varchar(50) ) Insert into triuser(username,userpwd) values(hy1,111) Insert into triuser(username,userpwd) values(hy2,222) Insert into triuser(username,userpwd) values(hy3,333) end 8.1.4 查看触发器基本信息(P195) 通过sp_help能够查看触发器的基本信息,包括触发器名、所有者、创建者和创建时间。语法格式为: Exec sp_help 触发器名 8.1.5 查看触发器代码(P196) 用sp_helptext能查看触发器SQL的代码信息,但在创建触发器时使用了with encryption选项,则执行该命令也看不到SQL代码。 Exec sp_helptext 触发器名 8.1.6 修改触发器(P196) 修改事后触发器: alter trigger 触发器名 on 表名[with encryption] for insert[,uodate,delete] as Begin 命令行或程序块 End 8.1.6 修改替代触发器(P196) alter trigger 触发器名 on 表名或视图名 instead of insert[,update,delete] as Begin 命令行或程序块 End 修改触发器与创建触发器几乎相同,只是将create改为alter即可。 8.1.7 删除触发器(P196) drop trigger 触发器名 实例2: 触发器的管理操作(P196) Use 企业销售管理系统 Exec sp_help hytrigger1 Exec sp_helptext hytrigger1 将195页触发器例题修改(P197) alter trigger hytrigger1 on 仓库 for insert as Begin Create table triuser( Userid int identity (1,1) primary key, Username varchar(50), Userpwd varchar(50) )

文档评论(0)

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

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

1亿VIP精品文档

相关文档