第8章 存储过程及触发器.ppt

  1. 1、本文档共90页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
An Introduction to Database Systenm 8.1 存储过程概述 在INSERT操作中,COLUMNS_UPDATED将对所有列返回TRUE值, IF(COLUMNS_ UPDATED())仅用于INSERT或UPDATE触发器。 bitwise_operator为用于比较运算的位运算符。updated_bitmask为整型的位屏蔽码,假定该表上有UPDATE触发器,若要检查列C1、C2、C4是否都有更新,可指定updated_bitmask的值即22);若要检查是否只有列C1有更新,可指定updated_bitmask的值即2)。 comparison_operator为比较运算符。使用等号(=)检查updated_bitmask中指定的所有列是否都实际进行了更新。使用大于号()检查update_bitmask中指定的任一列或某些列是否已更新。 column_bitmask为列屏蔽码,用来检查是否已更新或插入了对应列。 参数sql_statement为触发器的T-SQL语句,当执行DELETE、INSERT或UPDATE操作时,对应的触发器操作将生效。 n表示触发器中可以包含多条T-SQL语句。 【例8-7】在数据库student中,新建一表文件B1,试创建一触发器,在表文件B1中插入、修改和删除记录时,能自动显示表中的内容。 USE student GO /*如果表B1存在,则删除*/ IF EXISTS (SELECT name FROM sysobjects WHERE name =B1) DROP TABLE B1 GO /*创建表B1 */ CREATE TABLE B1(student_number int, student_name char(30)) GO 8.4.1 参数传递方式 1.顺序法 在传递参数时,使传递的参数和定义时的参数顺序一致,对于使用默认值的参数可以用DEFAULT值代替。 【例8-2】创建一个用于向class_info表中插入记录的存储过程Add_class。 USE student GO CREATE PROC Add_class ( @class_id int, @class_name char(20) , @director char(10), @profession char(14) ) AS INSERT INTO class_info VALUES(@class_id, @class_name, @director , @profession) 则可以使用下面的SQL语句调用该存储过程: EXEC Add_class 200202,计算机应用022, 张波, 计算机应用 执行语句: select * from class_info 【例8-3】在数据库student中,查询某学生指定课程的开课时间、成绩以及学分。 USE student IF EXISTS (SELECT name FROM sysobjects WHERE name=stu_score_proAND type=P) DROP PROCEDURE stu_score_pro GO CREATE PROCEDURE stu_score_pro @sname char(10),@cname char(10) AS SELECT a. student_name, c.course_name, c.course_start,b.result,c.course_score FROM student_info a JOIN result_info b ON a.student_id= b.student_id JOIN course_info c ON b.course_no=c.course_no WHERE c.course_name=@cname AND a.student_name=@sname GO 则可以使用下面的SQL语句调用该存储过程: EXEC stu_score_pro 陈白露,马克思主义 2.提示法 在传递参数时,采用提示的方法,如“@class_id =200202”的形式,此时,各个参数的顺序可以任意排列。例如,上面介绍的例8-2可以这样执行: EXEC Add_class @class_id =200202, @class_name =计算机应用022, @director =张波, @profession=计算机应用 或 EXEC Add_class @class_name =计

文档评论(0)

kehan123 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档