资源描述
,第一章,gyipf,第一节,Agyio,第一部分,Bihpl,第一标题,第一小标题,SQL Server 2005,#,大标题,SQL Server 2005,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,SQL Server 2005,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,SQL Server 2005,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,SQL Server 2005,#,存储过程和触发器,SQL Server 2005,所学为何,能根据项目需求设计存储过程。,能根据项目逻辑设计中数据完整性要求设计编写触发器。,2,SQL Server 2005,学习什么,存储过程的基本概念,触发器的基本概念,编写简单的存储过程,编写简单的触发器实现完整性控制,3,重点难点,重点,难点,存储过程的概念,存储过程的意义,存储过程的语法,触发器的概念和意义,触发器的编程方法,存储过程的使用方法和意义,触发器控制数据的完整性的深入应用,SQL Server 2005,4,SQL Server 2005,如何学习,温故知新,谋定后动,巧妙设计,5,本次课程的任务列表,存储过程,触发器,SQL Server 2005,6,SQL Server 2005,存储过程,概念,存储过程,(,Stored Procedure),一组,编译好,存储在,服务器,上的完成特定功能,T-SQL,代码,是某数据库的对象。,客户端,应用程序可以通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行存储过程。,7,SQL Server 2005,存储过程,优点,使用存储过程而不使用存储在客户端计算机本地的,T-SQL,程序的优点包括:,允许标准组件式编程,增强重用性和共享性,能够实现较快的执行速度,能够减少网络流量,可被作为一种安全机制来充分利用,8,SQL Server 2005,存储过程,分类,在,SQL Server 2005,中存储过程分为两类:系统提供的存储过程、用户自定义存储过程。,9,使用,T-SQL,语句创建存储过程,create procedure ,形参名 类型,变参名 类型,OUTPUT,.,AS,Begin,SQL,语句,End,注意:,1,、形参可以没有,也可以定义缺省的参数和输出参数,而且形参可以不被()包围,2,、,T-SQL,语句如果为多条,则最好以,begin end,包围,SQL Server 2005,10,练一练,/,问一问,创建一个根据学号查询学生信息(姓名,学号,性别,生日,专业)的存储过程。,创建一个根据学号查询学生信息(姓名,学号,性别,生日,专业,选课门次,平均分)的存储过程。,查询借了给定数目书的人数,(,使用输出参数,),SQL Server 2005,11,SQL Server 2005,存储过程的使用,如何使用存储过程呢?,首先想一想自定义函数的使用,存储过程则有独特的调用方式:,1,、不必加,dbo.,即构架名称,2,、存储过程没有返回值,所以不能当做一个表达式来用,3,、调用时必须冠以,execute,4,、参数列表不能加(),而且,output,不能省略。,12,SQL Server 2005,存储过程的管理,查看,修改,删除,13,Sp_help ,存储过程名称,Sp_helptext ,存储过程名称,Sp_depends ,存储过程名称,SQL Server 2005,14,ALTER PROCEDURE ,形参名 类型,变参名 类型,OUTPUT,.,AS,Begin,SQL,语句,End,SQL Server 2005,15,删除存储过程,Drop procedure,存储过程名,SQL Server 2005,16,SQL Server 2005,触发器,4,2,3,1,创建,DDL,触发器,修改触发器,删除触发器,查看触发器,触发器,的,基本知识,17,SQL Server 2005,触发器的基本知识,基本概念,触发器是特殊的存储过程,基于一个表创建,主要作用就是实现由主键和外键所不能保证的复杂的参照完整性和数据一致性。,当触发器所保护的数据发生变化,(,update,insert,delete),后,,自动运行以保证数据的完整性和正确性。通俗的说:通过一个动作,(,update,insert,delete,),调用一个存储过程(触发器)。,18,SQL Server 2005,触发器的基本知识,类型,DML,触发器,在数据库中发生数据操作语言,(,DML),事件时将启用。,DML,事件包括在指定表或视图中修改数据的,INSERT,语句、,UPDATE,语句或,DELETE,语句。,DML,触发器可以查询其他表,还可以包含复杂的,T-SQL,语句。系统将触发器和触发它的语句作为可在触发器内回滚的单个事务对待,如果检测到错误(例如,磁盘空间不足),则整个事务即自动回滚。,19,SQL Server 2005,触发器的基本知识,DDL,触发器,SQL Server 2005,的新增功能。当服务器或数据库中发生数据定义语言,(,DDL),事件时将调用这些触发器。但与,DML,触发器不同的是,它们不会为响应针对表或视图的,UPDATE、INSERT,或,DELETE,语句而激发,相反,它们会为响应多种数据定义语言,(,DDL),语句而激发。这些语句主要是以,CREATE、ALTER,和,DROP,开头的语句。,DDL,触发器可用于管理任务,例如审核和控制数据库操作。,20,SQL Server 2005,使用,T-SQL,语句创建,DML,触发器,create trigger,触发器名称,on,表名,|,视图,for | after | instead of,update , insert , delete,as T-SQL,语句,作用范围,作用时间,导火线,21,SQL Server 2005,使用,T-SQL,语句创建,DLL,触发器,create trigger,触发器名称,on all server|database,for | after,事件组,|,事件,as T-SQL,语句,作用范围,作用时间,导火线,22,练一练,/,问一问,在数据库,library,的表,brrow,中,添加借阅信息数据行时,得到该书的应还日期并将读者表中的借阅数量加,1,本禁止修改,EDUC,中的任何数据。,为数据库,LIBRARY,中的表,READER,的,DELETE,操作定义,INSTEAD OF,触发器,SQL Server 2005,23,SQL Server 2005,管理触发器,修改,删除,启用,禁用,注意与创建时的匹配即可,24,用户自定义函数,在,SQL SERVER,中,为了加快开发速度,可以将一个或多个,T-SQL,语句的子程序定义成函数,从而实现代码的封装和重用,.,用户自定义函数和存储过程一样,都是多个,T-SQL,语句的集合,两者主要区别是,SQL Server 2005,25,用户定义函数的分类,标量值函数,:,标量值函数返回的是在,RETURNS,子句中定义的类型的单个数据值,.,表值函数,:,返回的是在,RETURNS,子句中指定的,Table,类型的数据行集,(,表,).,SQL Server 2005,26,CREATE FUNCTION ,(,形参名 数据类型,.),RETURNS,返回值数据类型,AS,BEGIN,T-SQL,语句,RETURN,返回表达式,END,SQL Server 2005,27,SQL Server 2005,本章小结,重点探讨了存储过程和触发器的基本概念和基本的创建和使用方法,为今后的学习打下一定的基础。,重点是掌握基本语法,理解其实质意义,通过有效的练习进行我们的学习。,可以说本章是全书的精华所在。,28,抓紧时间复习,取得好的成绩!,SQL Server 2005,29,Thank You !,
展开阅读全文