- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SQL Server 2005数据库应用技术(第二版) 第10章 存储过程与触发器(2) 复习 上次课的主要内容 创建存储过程的语法及准则 创建简单存储过程 创建接受输入参数的存储过程 创建接受输出参数和返回值的存储过程 查看、修改和删除存储过程 导入 在实际的数据库应用中,往往需要系统具备一些能自动执行的功能,以保证数据的一致性和完整性。 问题:如何保证数据的一致性和完整性? 约束 触发器 与CHECK约束、默认值和规则相比较,触发器可以强制实现更加复杂的数据完整性,而且可以参考其他表的字段。在表中如果既有约束又有触发器,则在执行时约束优先于触发器。 触发器 [例1] 创建一个DML触发器,当操作者试图向成绩表中添加或修改数据时,该触发器向客户端显示一条消息. if exists (select * from sysobjects where name=xs_t_uandi and type=tr) drop trigger xs_t_uandi go create trigger xs_t_uandi on xscj for insert,update as print 插入或更新了成绩表 go -- insert into xscj values(200010,202,77) 触发器 [例2] 创建一个DDL触发器,当操作者试图创建、修改和删除数据库表时,该触发器向客户端显示一条消息。 if exists(select * from sys.triggers where name=safetyand type=tr) drop trigger safety on database go create trigger safety on database for create_table,drop_table,alter_table as print 创建、修改或删除了数据库表 go --drop table fxsda 触发器 查看触发器(DML)的相关信息 sp_help xs_t_uandi‘ --查看触发器的名称、属性、类型与创建时间 sp_helptext xs_t_uandi‘ --查看触发器的定义文本 sp_depends xs_t_uandi‘ --查看触发器的依赖关系 sp_helptrigger xscj‘ --查看表中所有的触发器信息 DML触发器的应用--INSERT 触发器 补充: RAISERROR ( msg_str , severity , state ) 功能:返回用户定义的错误信息并设系统标志,记录发生错误,作为服务器错误信息返回给客户端。 参数: msg_str:是一条特殊消息,最多可包含 400 个字符。 Severity:用户定义的与消息关联的严重级别。用户可以使用从 0 到 18 之间的严重级别。19 到 25 之间的严重级别只能由 sysadmin 固定服务器角色成员使用。 State:从 1 到 127 的任意整数,表示有关错误调用状态的信息。state 的默认为 1。 * * * * INSTEAD OF 触发器 DECLARE @NO CHAR(6),@NAME CHAR(8),@CITY CHAR(6),@PHONE CHAR(20) SET @CITY=济南 SET @NO=(SELECT 编号 FROM INSERTED) SET @NAME=(SELECT 姓名 FROM INSERTED) SET @PHONE=(SELECT 电话号码 FROM INSERTED) INSERT READERS(编号,姓名,城市,电话号码) VALUES(@NO,@NAME,@CITY,@PHONE) --验证 INSERT READER_V VALUES(000001,王小平 修改触发器 修改触发器语法格式与创建时类似,只需将关键字CREATE改为ALTER。 DML触发器修改的主要语法格式如下: ALTER TRIGGER trigger_name ON table|view {[FOR|AFTER]|INSTEAD OF} {[INSERT ][,][UPDATE][,][DELETE]} AS [IF UPDATE(列名1)[{AND|OR} UPDATE(列名2)][…n]] SQL_statement 修改触发器 例:修改XS数据库的触发器xsdaupd_trig,将它的功能改为当修改或删除XSDA中的一条记录时,如果在XSCJ表存在有相同学号的记录,则禁止修改或删除。 ALTER TRIGGER xsd
文档评论(0)