- 1、本文档共63页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SQL server 数据库第8章
第8章 存储过程与触发器 8.1 存储过程的创建与使用 8.2 存储过程的查看、编辑和删除 8.3 触发器的创建与使用 8.4 触发器的查看、编辑、重命名和删除 8.5 实训要求与习题 第8章 存储过程与触发器 学习目的与要求 存储过程与触发器是数据库的又一重要组成部分。存储过程可以把对数据库的复杂操作封装为独立的程序模块,相当于其他编程语言的函数、过程、方法,具有“编写一次处处调用”的特点,便于程序的维护和减少网络通讯量。而触发器则是自动调用执行的程序模块,可以实现规则、默认值等约束对象不能完成的复杂约束功能,可以检查数据输入与修改的正确性,保证数据库的数据完整性。通过本章学习,读者应学会如何创建、查看、编辑、删除存储过程和触发器,掌握存储过程和触发器在数据库中的应用。 8.1 存储过程的创建与使用 8.1.1、存储过程的概念 1、存储过程 存储过程(stored procedure)是由一系列对数据库进行复杂操作的SQL语句、流程控制语句或函数组成的,并且将代码事先编译好之后、象规则、视图那样作为一个独立的数据库对象进行存储管理。 存储过程可作为一个单元被用户直接调用。相当于其他编程语言的函数、过程、方法。 2、存储过程的特点 存储过程具有参数传递、判断、声明变量、返回信息并扩充标准SQL语言的功能,其特点是: l 存储过程可以接收参数,并可以返回多个参数值,也可以返回存储过程的执行状态值以反映存储过程的执行情况。 l存储过程可以包含存储过程(嵌套),可以在数据库查询、修改语句中调用存储过程,也可在存储过程中调用存储过程。 8.1.1、存储过程的概念 3、使用存储过程的优点 l 执行速度快:存储过程在创建时已经通过语法检查和编译,调用时则直接执行,程序的运行效率高,其执行速度要比标准SQL语句快得多。含有大量SQL语句的批处理需要重复多次执行时,定义为存储过程可大大提高运行效率。 l 有利于模块化程序设计:存储过程创建后,即可以无数次随时任意繁荣调用。可根据不同的功能模式设计不同的存储过程以供调用。 l 便于程序的维护管理:当用户对数据库使用的功能改变时,只需对相应的存储过程进行修改而不用修改应用程序。 l 减少网络通信量:存储过程可包含大量对数据库进行复杂操作的SQL语句,它的存储执行都在SQL Server服务器(数据库)端,网络用户使用时只需发送一个调用语句就可以实现,大大减少了网络上SQL语句的传输。 l 保证系统的安全性:可以在存储过程中设置用户对数据的访问权限,只允许用户调用存储过程而不允许直接对数据进行访问,充分发挥安全机制的作用。 8.1.1、存储过程的概念 4、存储过程的缺点 l?不能实现复杂的逻辑操作:这是因为SQL语言本身就不支持复杂的程序设计结构,所以各种程序设计语言都有自己对数据库进行操作处理的功能。 l 用存储过程实现数据库的全部功能比较困难:不同用户的需求不同,当涉及特殊管理要求时,很难全面满足要求,若将所有需求都定义为存储过程,其数量将相当可观,记忆和掌握这些存储过程是很困难。 存储过程分为系统存储过程和用户自定义存储过程。系统存储过程可直接使用,如定义和绑定规则对象、默认值对象等。用户自定义存储过程必须先定义后使用。 8.1.2、用CREATE PROC创建存储过程 创建存储过程应遵守的规则: l 名称标识符的长度最大为128个字符,且必须惟一。 l 每个存储过程最多可以使用1,024个参数。 l 存储过程的最大容量有一定的限制。 l 存储过程支持多达32层嵌套。 l 在对存储过程命名时最好和系统存储过程名区分。 CREATE PROCEDURE 存储过程名 [ ; 整数] [@形参变量 数据类型[varying][=默认值] [output]] [,…n] [WITH recompile|encryption| {recompile,encryption}] [FOR replication ] AS SQL 语句系列 8.1.2、用CREATE PROC创建存储过程 说明: l?该语句可以创建永久存储过程,也可以创建一个在一个会话中临时使用的局部存储过程(名称前加一个#),还可以创建一个在所有会话中临时使用的全局存储过程(名称前加两个##)。 l?整数:可作为同名过程分组的后缀序号(如OP1,OP2可定义属于一组),同组的过程将来可以用一条DROP PROCEDURE删除命令全部删除掉。 l?@形参变量:指定接收调用参数或返回值的变量,默认状态下只表示单一数值,不能代表表名、列名或其他
文档评论(0)