数据库原理与应用06.pptVIP

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

SQL Server--chap10--第十章 触发器及其应用 2. 使用系统表或系统信息架构视图 在SQL Server中存在三个信息架构视图报告有关用户自定义函数的信息 ROUTINES PARAMETERS ROUTINE_COLUMNS 这些信息架构视图也是基于系统表sysobjects和syscomments实现的 例:使用系统表sysobjects查看数据库Northwind上存在的所有用户自定义函数的相关信息。 ? USE Northwind SELECT * from sysobjects WHERE type=FN go 3. 用“企业管理器” 查看触发器 10.3.1 使用触发器强制数据完整性 约束和触发器都可以用来实施数据完整性,但两者各有优势 触发器的可以包含使用 T-SQL 代码的复杂处理逻辑 触发器可以支持约束的所有功能 实体完整性应在最低级别上通过索引进行强制,这些索引或是 PRIMARY KEY和UNIQUE约束的一部分,或是在约束之外独立创建的 域完整性应通过CHECK约束来强制 引用完整性应通过FOREIGN KEY 约束来强制 以下应用场合应考虑使用触发器: 除非REFERENCES子句定义了级联引用操作,否则FOREIGN KEY约束只能以与另一列中的值完全匹配的值来验证列值 应用程序要求根据另一表中的列验证列值 应用程序要求使用自定义信息和较为复杂的错误处理 10.3.2 使用触发器强制业务规则 触发器在强制数据完整性之外,还可强制实施对CHECK约束来说过于复杂的业务规则,包括对其他表中行的状态进行检查 例:在Northwind数据库中的Customers上建立DELETE触发器delete_customers,使得在删除表Customers中记录的同时,自动检查表Orders中是否有该客户的记录,如果存在该客户记录,则取消删除。 USE Northwind go CREATE TRIGGER delete_customers ON dbo.[Customers] FOR DELETE AS IF (SELECT COUNT(*) FROM [Orders] INNER JOIN Deleted ON [Orders].CustomerID= Deleted.CustomerID)0 BEGIN RAISERROR(‘You can not delete the customer with the order record.\ The transaction will be cancelled’,10,1) ROLLBACK TRANSACTION END 10.4 修改和删除触发器 10.4.1 修改触发器 ALTER TRIGGER [owner.]trigge_name ON [owner.]{table|view} {FOR|AFTER|INSTEAD OF} {INSERT,UPDATE,DELETE} [WITH ENCRYPTION] AS IF UPDATE(column_name) [{and|or} UPDATE(column_name)…] sql_statesments ALTER TRIGGER [owner.]trigge_name ON [owner.]{table|view} {FOR|AFTER|INSTEAD OF} {INSERT,UPDATE,DELETE} [WITH ENCRYPTION] AS IF UPDATE(column_name) [{and|or} UPDATE(column_name)…] sql_statesments 例:修改Northwind库中的视图Customers上的INSTEAD OF触发器delete_customers,使得用户在该视图上执行除删除外的增加,修改操作时,也自动给出错误提示信息并撤销此次操作 USE Northwind go ALTER TRIGGER delete_customers ON Customers INSTEAD OF DELETE,INSERT,UPDATE AS RAISERROR(You can not insert,delete or update records from this view,10,1) 10.4.2 删除触发器 DROP TRIGGER [owner.]trigge_name 10.4.3 禁止或启用触发器 当一个触发器被禁止后,它仍然存在于触发器表上,只是触发器的动作不再执行,直到该它被重新启用。启用/禁止命令如下: ALTER TABLE table_name { ENA

文档评论(0)

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

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

版权声明书
用户编号:5311233133000002

1亿VIP精品文档

相关文档