- 1、本文档共34页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 SQL SERVER2008高级应用
5.3存储过程与触发器 5.3.1.存储过程 1存储过程概念 存储过程(Stored Procedure)是一组编译好存储在服务器上的完成特定功能T-SQL代码,是某数据库的对象。客户端应用程序可以通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行存储过程。 2存储过程优点 (1)加快系统运行速度。 (2)封装复杂操作。 (3)实现代码重用。 (4)增强安全性。 (5)减少网络流量。 3设计存储过程 CREATE PROCEDURE 定义自身可以包括任意数量和类型的 SQL 语句,不能在存储过程的任何位置使用的语句如下表: 4存储过程的建立 SQL Server 2008创建存储过程有二种方法,分别是SSMS,另一种是T-SQL 5.3.2触发器 1触发器概念 触发器是一类特殊的存储过程,它与表紧密相连,在对特定表或视图发出 UPDATE、INSERT 或 DELETE 语句时自动执行。 2触发器的作用 1.完成比约束更复杂的数据约束 2检查所做的SQL是否允许 3.修改其它数据表里的数据 4.调用更多的存储过程 5.发送SQL Mail: 6.返回自定义的错误信息 7.更改原本要操作的SQL语句 8.防止数据表构结更改或数据表被删除 3 DML触发器的分类 1. After触发器:这类触发器是在记录已经改变完之后(after),才会被激活执行,它主要是用于记录变更后的处理或检查,一旦发现错误,也可以用Rollback Transaction语句来回滚本次的操作。 2. Instead Of触发器:这类触发器一般是用来取代原本的操作,在记录变更之前发生的,它并不去执行原来SQL语句里的操作(Insert、Update、Delete),而去执行触发器本身所定义的操作。 4创建DML触发器 创建DML触发器有2种方法, 一种是用SSMS创建触发器,一种是用T-SQL语言创建触发器。 3触发器种类 (1).DML触发器 DML 触发器是当数据库服务器中发生数据操作语言(Data Manipulation Language)事件时执行的存储过程。DML 事件包括在指定表或视图中修改数据的 INSERT 语句、UPDATE 语句或 DELETE 语句。DML 触发器可以查询其他表,还可以包含复杂的 T-SQL 语句。DML 触发器又分为两大类:After 触发器和Instead of触发器 (2).DDL 触发器 当服务器或数据库中发生数据定义语言(DDL)事件时将调用这些触发器。但与DML触发器不同的是,它们不会为响应针对表或视图的UPDATE、INSERT或DELETE语句而激发,相反,它们会为响应多种数据定义语言(DDL)语句而激发。这些语句主要是以CREATE、ALTER和DROP开头的语句。DDL触发器可用于管理任务,如审核和规范数据库操作、防止数据库表结构被修改等。 5.4 用户自定义函数 用户自定义函数可以接受参数,执行复杂的操作并将操作的结果以值的形式返回。 根据函数返回值的类型,可以把SQL Server用户自定义函数分为标量值函数(数值函数)和表值函数(内联表值函数和多语句表值函数) 数值函数返回结果为单个数据值; 表值函数返回结果集(table数据类型) 数据库系统原理及应用 * 数据库系统原理及应用 一.常量 1.字符串常量 字符串常量括在单引号内并包含字母、数字字符(a-z、A-Z 和 0-9)以及特殊字符,如!、@ 和#。 2.数值常量 包括Integer常量、Decimal常量、Float和Real常量如果要表示一个数是正数还是负数 如: 123.45,5.6 数据库系统原理及应用 5.1 Transact-SQL程序设计 3.日期时间常量 日期时间常量使用特定格式的字符日期时间值来表示,并被单引号括起来,例如‘12/8/2008’,‘December 8, 2008’,‘21:14:20’等。 4.空值 空值是表示值未知,不同于空白或零值,用Null来表示。比较两个空值或将空值与任何其他值相比均返回未知,这是因为每个空值均为未知。在往表中添加记录时,如果不对某一列赋值则系统自动让该列取空值,或者也可以在Insert语句或Update语句中显式地对某列赋空值。 数据库系统原理及应用 二.变量 变量是可以对其赋值并参与运算的一个实体,其值在运行过程中可以发生改变。 变量可以分为全局变量和局部变量两类 全局变量由系统定义并维护,局部变量由用户定义并赋值。 数据库系统原理及应用 1. 全局变量 全局变量由系统定义,通常用来跟踪服务器范围和特定会话期间的信息,不能被用户显式地定义和赋值,但是我们可以通过访问全局变量来
文档评论(0)