SQL Server 2012 数据库教程第7章 存储过程和触发器.ppt

SQL Server 2012 数据库教程第7章 存储过程和触发器.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
当不再使用一个存储过程时,就要把它从数据库中删除。使用DROP PROCEDURE语句可永久地删除存储过程。在此之前,必须确认该存储过程没有任何依赖关系。语法格式: DROP { PROC | PROCEDURE } { [架构名. ]过程 } [ , ... ] 【例7.9】 删除pxscj数据库中的student_info存储过程。 USE pxscj GO IF EXISTS(SELECT name FROM sysobjects WHERE name=student_info) DROP PROCEDURE student_info 1.创建存储过程 在“对象资源管理器”中展开“数据库”→选择数据库(例如:“pxscj”)→“可编程性”→“存储过程”,单击鼠标右键,在弹出的快捷菜单中选择“新建存储过程”菜单项,如图7.3所示。打开“存储过程脚本编辑”窗口,在该窗口中输入要创建的存储过程的代码,输入完成后单击“执行”按钮,若执行成功则创建完成,如图7.4所示。 2.执行存储过程 在pxscj数据库的“存储过程”目录下选择要执行的存储过程,如student_info1,右键单击鼠标,选择“执行存储过程”菜单项。在弹出的“执行过程”窗口中会列出存储过程的参数形式,如果“输出参数”栏为“否”,则表示该参数为输入参数,用户需要设置输入参数的值,在@number“值”一栏中输入“191301”,在@cname栏输入“计算机基础”,如图7.5所示。 单击“确定”按钮,系统显示存储过程运行的结果,如图7.6所示。 3.修改存储过程 在“存储过程”目录下选择要修改的存储过程,右键单击鼠标,在弹出的快捷菜单中选择“修改”菜单项,打开“存储过程脚本编辑”窗口,在该窗口中修改相关的T-SQL语句。修改完成后,执行修改后的脚本,若执行成功,则存储过程修改完毕。 4.删除存储过程 选择要删除的存储过程,右键单击鼠标,在弹出的快捷菜单中选择“删除”菜单项,根据提示删除该存储过程。 7.2.1 触发器的类型 1.DML触发器 当数据库中发生数据操纵语言(DML)事件时将调用DML触发器。一般情况下,DML事件包括对表或视图的INSERT语句、UPDATE语句和DELETE语句,因而DML触发器也可分为INSERT、UPDATE和DELETE 3种类型。 2.DDL触发器 DDL触发器也是由相应的事件触发的,但DDL触发器触发的事件是数据定义语句(DDL)。这些语句主要是以CREATE、ALTER、DROP等关键字开头的语句。DDL触发器的主要作用是执行管理操作,如审核系统、控制数据库的操作等。通常情况下,DDL触发器主要用于以下一些操作需求:防止对数据库架构进行某些修改;希望数据库中发生某些变化以利于相应数据库架构中的更改;记录数据库架构中的更改或事件。 1.创建DML触发器 语法格式: CREATE TRIGGER [架构名. ]触发器名 ON { 表 | 视图 } /*指定操作对象*/ [ WITH ENCRYPTION ] /*说明是否采用加密方式*/ { FOR | AFTER | INSTEAD OF } { [ INSERT ] [ , ] [ UPDATE ] [ , ] [ DELETE ] } [ WITH APPEND ] [ NOT FOR REPLICATION ] /*说明该触发器不用于复制*/ AS { SQL语句 …… } 2.触发器说明 触发器有以下几点说明。 (1)触发器中使用的特殊表。执行触发器时,系统会创建两个特殊的临时表inserted表和deleted表,下面介绍一下这两个表的内容。 ● ?inserted表:当向表中插入数据时,INSERT触发器触发执行,新的记录插入到触发器表和inserted表中。 ● ?deleted表:用于保存已从表中删除的记录,当触发一个DELETE触发器时,被删除的记录存放到deleted表中。 (2)创建DML触发器的说明。创建DML触发器时主要有以下几点说明。 ① CREATE TRIGGER语句必须是批处理中的第一条语句,并且只能应用到一个表中。 ② DML触发器只能在当前的数据库中创建,但可以引用当前数据库的外部对象。 ③ 创建DML触发器的权限默认分配给表的所有者。 ④ 在同一CREATE TRIGGER语句中,可以为多种操作(如INSERT和UPDATE)定义相同的触发器操作。 ⑤ 不能对临时表或系统表创建DML触发器。 ⑥ 对于含有DELETE或UPDATE操作定义的外键表,不能使用INSTEAD OF DELETE和INSTEAD OF UPDATE触发器。 ⑦ TRUNCATE TABLE语句虽

文档评论(0)

132****9295 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档