第章 存储过程与触发器补充.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文档。上传文档
查看更多
第章 存储过程与触发器补充

如何读取逻辑表? USE skymember IF EXISTS (SELECT name FROM sysobjects WHERE name = adding AND type = TR) DROP TRIGGER adding GO CREATE TRIGGER adding ON m_login FOR INSERT AS BEGIN insert into m_login_bak select * from inserted END GO Create trigger tri_del_产品 on 产品 for delete as if (select count(*) from 产品销售 a inner join deleted d on a.产品编号=d.产品编号)0 ROLLBACK TRANSACTION * * 数据库设计与应用 浙江工业大学计算机学院 存储过程 触发器 2 触发器 2.1 创建触发器 2.2 查看、修改和删除触发器 2.3 触发器的应用 触发器的概念 触发器是一种特殊类型的存储过程。 跟特定的操作相关联 insert, update, delete 跟特定的表格相关联 触发器通过事件触发而被执行(不能被用户调用),而存储过程则通过存储过程名称被直接调用。 触发器使每个站点可以在有数据修改时自动强制执行其业务规则。触发器可以用于 SQL Server 约束、默认值和规则的完整性检查。 为什么要用触发器? 跟踪变化 确保业务规则 自动记录更改 使视图可更改 触发器主要优点 触发器是自动的:当对表中的数据作了任何修改(比如手工输入或者应用程序采取的操作)之后立即被激活。 触发器可以通过数据库中的相关表进行层叠更改。 触发器可以强制限制,这些限制比用 CHECK 约束所定义的更复杂。 2.1 创建触发器 创建触发器应该考虑以下几个问题: ①CREATE TRIGGER 语句必须是批处理中的第一个语句。 ②创建触发器的权限默认分配给表的所有者,且不能将该权限转给其他用户。 ③触发器为数据库对象,其名称必须遵循标识符的命名规则。 ④虽然触发器可以引用当前数据库以外的对象,但只能在当前数据库中创建触发器,且只能应用到一个表中。 ⑤不能在临时表或系统表上创建触发器。 (1) 使用CREATE TRIGGER命令创建触发器 其语法形式如下: CREATE TRIGGER trigger_name --触发器的名称 ON{table|view} --创建触发器的对象名称(表或视图) [WITH ENCRYPTION] --说明是否采用加密方法 { { FOR | AFTER | INSTEAD OF } { [ INSERT ] [ , ] [ UPDATE ] [ , ] [ DELETE ] }?? [NOT FOR REPLICATION]--说明当复制进程涉及触发器定义的表时,该触发器不起作用 ????????AS [if update(列名) [and | or update(列名)]] ? ?????sql_statement 触发器中使用的特殊表 inserted 逻辑表:当向表中插入数据时,INSERT触发器触发执行,新的记录插入到触发器表和inserted表中。 deleted 逻辑表:用于保存已从表中删除的记录,当触发一个DELETE触发器时,被删除的记录存放到deleted逻辑表中。 修改记录相当于删除原有记录,插入一条新记录。因此表中原记录存放到deleted表中,而新记录存放在inserted表中。 触发器中的SQL语句涉及的数据均来自上述两张逻辑表中。这两张表结构上类似于定义触发器的表 在同一CREATE TRIGGER语句中,可以为多种操作(如 INSERT 和 UPDATE)定义相同的触发器操作。 在触发器内可以指定任意的 SET 语句,所选择的 SET 选项在触发器执行期间有效,并在触发器执行完后恢复到以前的设置。 触发器中不允许包含以下 T-SQL 语句: CREATE DATABASE 、ALTER DATABASE 、LOAD DATABASE 、RESTORE DATABASE 、DROP DATABASE、LOAD LOG 、RESTORE LOG 、DISK INIT、DISK RESIZE和RECONFIGURE 触发器不能返回任何结果,为了阻止从触发器返回结果,不要在触发器定义中包含变量赋值语句。 使用触发器的限制

文档评论(0)

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

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

版权声明书
用户编号:6153235235000003

1亿VIP精品文档

相关文档