- 1、本文档共61页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 注意: ① 使用游标的DELETE语句,一次只能删除当前游标位置确定的那一行。OPEN语句将游标位置定位在结果集第一行之前,可以用FETCH语句把游标位置定位在要被删除的行处。 ② 在DELETE语句中使用的游标必须声明为FOR UPDATE方式。而且声明游标的SELECT语句中不能含有连接操作或涉及多表视图,否则即使声明中指明了FOR UPDATE方式,也不能删除其中的行。 ③ 对使用游标删除行的表,要求有一个唯一索引。 ④ 使用游标的DELETE语句,删除一行后将游标位置向前移动一行。 本章首页 游标示例 Declare MyCusror Cursor Scroll For Select * From Master_Goods Order By GoodsID Open MyCursor Fetch next From MyCursor Delete From Master_Goods Where Current Of MyCursor Close MyCursor Deallocate MyCursor * * 10.4.1 触发器的概念 1、概念 触发器是一类特殊的存储过程,被定义为在对特定表或视图发出 UPDATE、INSERT 或 DELETE 语句时自动执行. 2、触发器的特点: 它与表紧密相连,可以看作表定义的一部分; 它不能通过名称被直接调用,更不允许带参数,而是当用户对表中的数据进行编辑时,自动执行; 它可以用于SQL Server约束、默认值和规则的完整性检查,实施更为复杂的数据完整性约束。 * 10.4.2 触发器的作用 1 在数据库中的相关表上实现级联更改 在数据库的相关表上使用触发器可实现级联更新或删除 2 强制比 CHECK 约束更复杂的数据完整性 和 CHECK 约束不同,触发器可以引用其他表中的列 通过下列方法使用触发器来强制复杂的引用完整性:根据情况确定是否级联更新与删除、创建多行触发器、在数据库间强制引用完整性 * 10.4.2 触发器的作用 3 维护非标准数据 触发器可以用来在非标准数据库环境中维护底层的数据完整性。非标准数据常常是人为得出的或冗余的数据值 4 比较数据修改前后的状态 大部分触发器提供了引用被修改数据的能力,这样就允许用户在触发器中引用正被修改语句所影响的行 * 10.4.3 触发器的类型 1、DML触发器 DML触发器是当数据库服务器中发生数据操纵语言(DML)事件,如INSERT、UPDATE、DELETE时所触发的操作。DML触发器用于在数据被修改时强制执行业务规则。 注意:SELECT语句不能触发触发器操作,因为SELECT语句并没有修改表中的数据。 * 10.3.3 触发器的类型 2、DDL触发器 SQL SERVER 2005中新增了DDL触发器,该触发器是一种特殊的触发器,当服务器或数据库中发生数据定义语句(DDL)事件,如CREATE、ALTER、DROP数据库对象等操作时将调用这些触发器。它们可以用于在数据库中执行管理任务,如审核以及规范数据库操作。 * 10.3.4 触发器应用的两个逻辑表 SQL SERVER 为每个触发器语句都创建两个特殊的逻辑表:INSERTED表和 DELETED表,由系统创建和维护。 1、INSERTED表 用于存放由INSERT或UPDATE语句而要向表中插入的所有数据行。在执行INSERT或UPDATE事务中,新的行同时会添加到触发触发器的表和INSERTED表中,INSERTED表中的内容是新插入到触发表的数据行的副本。 * 10.3.4 触发器应用的两个逻辑表 2、DELETED表 用于存放由DELETE或UPDATE语句而要从表中删除的所有数据行。在执行DELETE或UPDATE事务中,被删除的行从触发触发器的表中被移动到DELETED表中,DELETED表中的内容是被删除的触发表的数据行的副本 注意:一个UPDATE事务可以看作是先执行一个DELETE操作,然后再执行一个INSERT操作,执行DELETE操作所删除的行首先被移动到DELETED表中,执行INSERT操作插入的新行会同时插入INSERTED表及触发表中 * 10.4 创建/管理DML触发器 10.4.1 创建DML触发器的语句 10.4.2 DML触发器的类型 10.4.3 修改触发器 10.4.4 查看触发器 10.4.5 删除触发器 10.4.6 禁止和启用触发器 * 10.4.1 创建DML触发器的语句 SQL SERVER 2005中,创建一个触发器的基本语法如下: CREATE TRIGGER trigger_name ON {table_name | view_name} { {F
文档评论(0)