欢迎来到天天文库
浏览记录
ID:39334877
大小:587.50 KB
页数:47页
时间:2019-07-01
《存储过程(SQLServer)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、存储过程杨之江yangzhijiang@mapgis.net内容存储过程概念创建和执行存储过程从存储过程中返回数据查看、修改、删除存储过程存储过程的加密存储过程的调试重新编译存储过程C#中调用存储过程Q&AT-SQL来进行编程的两种方法在利用数据库管理系统创建应用程序时,SQL语言是应用程序和数据库管理系统之间的主要编程接口。使用SQL语言编写代码时,可以用两种方法存储和执行代码。一种是在客户端存储代码,并创建向数据库管理系统发送SQL语句并处理返回结果的应用程序;第二种是将这些SQL语句存储在数据库管理系统中,这些存储在数据库管理系统中的SQL语句就是存储过程,然后再创建执行存储过程并处理返
2、回结果的应用程序。1存储过程概念存储过程是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它系统存储过程系统过程主要存储在master数据库中并以sp_为前缀,并且系统存储过程主要是从系统表中获取信息,从而为系统管理员管理SQLServer提供支持。用户自定义存储过程用户自定义存储过程是由用户创建并能完成某一特定功能如查询用户所需数据信息的存储过程存储过程可以接受输入参数并以输出参数的形式将多个值返回给调用过程。包含执行数据库操作(包括调用其它存储过程)的编程语句。向调用过程返回状态值,以表明执行成功或失败(以及失
3、败原因)使用存储过程的好处允许模块化程序设计标准的编写规范多次调用而不必重新编写该存储过程的SQL语句对存储过程进行修改但对应用程序源代码毫无影响提高了程序的可移植性改善性能,执行速度快存储过程是预编译的,而批处理的SQL语句在每次运行时都要进行编译和优化因此速度相对要慢一些减少网络流量客户计算机上调用该存储过程时网络中传送的只是该调用语句,否则将是多条SQL语句从而大大增加了网络流量,降低网络负载可作为安全机制使用系统管理员通过对执行某一存储过程的权限进行限制从而能够实现对相应的数据访问权限的限制避免非授权用户对数据的访问保证数据的安全2创建和执行存储过程创建存储过程CREATE{PROC
4、
5、PROCEDURE}[schema_name.]procedure_name[{@parameter[type_schema_name.]data_type}[VARYING][=default][OUTPUT]][,...n][WITH[,...n]][FORREPLICATION]AS{[;][...n]}[;]::=[ENCRYPTION][RECOMPILE]2创建和执行存储过程执行存储过程[EXEC[UTE]]存储过程名[实参[,…n]]注意事项不能将CREATEPROCEDURE语
6、句与其它SQL语句组合到一个批处理中。创建存储过程的权限默认属于数据库所有者,该所有者可将此权限授予其他用户。存储过程是数据库对象,其名称必须遵守数据库对象命名规则。只能在当前数据库中创建存储过程。例1.带有复杂SELECT语句的存储过程:对pubs数据库,查询居住在“Oakland”城市(authors表中的city列)的作者的姓名(au_lname列和au_fname列的值的组合)、所写的图书的书名(titles表中的title列)、图书出版日期(titles表中的pubdate列)以及出版商名(publishers表中的pub_name列)。CREATEPROCEDUREp_city1A
7、SSELECTau_lname+''+au_fnameAS作者名,titleas书名,pubdateas出版日期,pub_nameas出版商FROMauthorsjointitleauthorONauthors.au_id=titleauthor.au_idJOINtitlesONtitles.title_id=titleauthor.title_idJOINpublishersONpublishers.pub_id=titles.pub_idWHEREauthors.city='Oakland'调用:EXECp_city1例2.带有输入参数的存储过程:查询居住在指定城市的作者的姓名、所写的图
8、书的书名、图书出版日期和出版商名CREATEPROCEDUREp_city2@cityasvarchar(20)ASSELECTau_lname+''+au_fnameAS作者名,titleas书名,pubdateas出版日期,pub_nameas出版商FROMauthorsjointitleauthorONauthors.au_id=titleauthor.au_idJOINtitlesONti
此文档下载收益归作者所有