第七章系统实现技术.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 例:建立学生、课程、选课表 7.5.3 SQL中的完整性约束 CREATE TABLE S ( SNO CHAE(4) NOT NULL UNIQUE, SNAME CHAR(8), SSEX CHAR(2), SAGE INT, PRIMARY KEY (SNO)) CREATE TABLE C ( CNO CHAE(4) NOT NULL UNIQUE, CNAME CHAR(8), PRIMARY KEY (CNO)) * 7.5.3 SQL中的完整性约束 CREATE TABLE SC ( SNO CHAE(4) NOT NULL, CNO CHAR(4) NOT NULL, GRADE INT, PRIMARY KEY(SNO,CNO), FOREIGN KEY(SNO) REFRENCES S(SNO), FOREIGN KEY (CNO)REFRENCES C(CNO), CHECK (GRADE IS NULL) OR (GRADE BETWEEN 0 AND 100)) * 7.5.4 触发器 SQL Server提供了两种主要机制来强制实施数据库的完整性:约束和触发器。 触发器可以实现比check约束更为复杂的完整性约束。 触发器:是一种特殊的存储过程,它也定义了一组Transact-SQL语句,用于完成某项任务。在用户试图更新触发器保护的数据时自动执行。 触发器 7.5.4 * 触发器的主要作用是能实现复杂的完整性控制。主要功能有: 1.强化约束:触发器能实现比check子句更为复杂的约束; 2.保证参照完整性 :能够实现主键和外键所不能保证的参照完整性和数据一致性。 3.级联运行:触发器可以侦测数据库内的操作,并自动级联相关的整个数据库对象的各项内容。比如一张表的触发器可以涉及多张表的操作。 触发器 7.5.4 * 4.跟踪变化:触发器可以侦测数据库内的操作,从而阻止未经许可的更新操作和访问; 5.调用存储过程:为了实现数据库更新,触发器可以调用一个或多个存储过程。 创建触发器时需指定: 名称 在其上定义触发器的表 触发器将何时激发 激活触发器的数据修改语句 触发器 7.5.4 * (1) 总是与一个表相连。 触发器是在单个表或视图上定义,这个表称为触发器表。每个表上可以建若干触发器。 (2) 是自动激活的。 当对一个表中数据执行插入、删除、修改操作时,如果对该表上这个操作定义了触发器,则该触发器自动执行,这是不可阻挡的。 (3) 不能直接调用 与标准的存储过程不同,触发器不能直接调用,也不能传递或接受参数。 (4) 是一个事务 触发器和激活它的语句作为一个事务处理,可以从触发器中的任何位置撤销。触发器可以包括ROLLBACK TRANSACTION语句,激活触发器的语句可以看成隐含事务的开始。 触发器 7.5.4 * 1、 创建触发器 1. 语法格式 CREATE TRIGGER 触发器名 ON 表 --给定建立触发器的表 [WITH ENCRYPTION ] --加密存储触发器定义 FOR|AFTER|INSTEAD OF –触发时间 [INSERT][,][DELETE][,][UPDATE] -触发事件 AS 触发器要完成的操作 --触发后的动作 触发器 7.5.4 * 说明: AFTER:指定触发器只有在触发 SQL 语句中指定的所有操作都已成功执行后才激发。 INSTEAD OF:指定执行触发器而不是执行“触发 SQL 语句”,从而替代“触发语句”的操作。对于表或视图,每个 INSERT、UPDATE 或 DELETE 语句最多可定义一个 INSTEAD OF 触发器。 WITH ENCRYPTION:加密存储触发器存放在syscomments中的文本。 触发器 7.5.4 * 注意: 创建触发器的权限默认为表的所有者,且不能将该权限转让给其它用户。 不能在临时表上创建触发器,但在触发器中可引用临时表。 触发器允许嵌套。最大嵌套数32。 触发器中不允许有下列语句: ALTER DATABASE, CREATE DATABASE, DISK INIT, DISK RESIZE, DROP DATABASE, LOAD DATABASE等等。 触发器 7.5.4 * deleted和inserted 表: 当用户对触发器表执行更新操作时,SQL Server自行为每个触发器创建和管理这两个表。它们是逻辑表,存放在内存中,用户

文档评论(0)

170****0532 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:8015033021000003

1亿VIP精品文档

相关文档