存储过程的定义:
存储过程(Stored Procedure),是一组为了完成特定功能的SQL语句集,是利用SQL Server所提供的Transact-SQL语言所编写的程序。经编译后存储在数据库中。存储过程是数据库中的一个重要对象,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是由流控制和SQL语句书写的过程,这个过程经编译和优化后存储在数据库服务器中,存储过程可由应用程序通过一个调用来执行,而且允许用户声明变量 。同时,存储过程可以接收和输出参数、返回执行存储过程的状态值,也可以嵌套调用。
存储过程有的种类:
系统存储过程、本地存储过程、临时存储过程(1、本地临时存储过程2、全局临时存储过程)、远程存储过程、扩展存储过程
存储过程的语法格式:
1、创建存储过程(/*注:“sp_name”为需要创建的存储过程的名字,该名字不可以以阿拉伯数字开头*/)
2、调用存储过程基本语法:exec sp_name [参数名]
3、删除存储过程基本语法:drop procedure sp_name(不能在一个存储过程中删除另一个存储过程,只能调用另一个存储过程)
4、其他常用命令
a、 show procedure status
显示数据库中所有存储的存储过程基本信息,包括所属数据库,存储过程名称,创建时间等
b、 show create procedure sp_name
显示某一个mysql存储过程的详细信息
c、 exec sp_helptex tsp_name
显示你这个sp_name这个对象创建文本
存储过程的优点:
1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。
2.当对数据库进行复杂操作时(如对多个表进行Update,Insert,Query,Delete时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。
3.存储过程可以重复使用,可减少数据库开发人员的工作量
4.安全性高,可设定只有某些用户才具有对指定存储过程的使用权
存储过程的缺点:
1:调试麻烦,但是用 PL/SQL Developer 调试很方便!弥补这个缺点。
2:移植问题,数据库端代码当然是与数据库相关的。但是如果是做工程型项目,基本不存在移植问题。
3:重新编译问题,因为后端代码是运行前编译的,如果带有引用关系的对象发生改变时,受影响的存储过程、包将需要重新编译(不过也可以设置成运行时刻自动编译)。
4: 如果在一个程序系统中大量的使用存储过程,到程序交付使用的时候随着用户需求的增加会导致数据结构的变化,接着就是系统的相关问题了,最后如果用户想维护该系统可以说是很难很难、而且代价是空前的,维护起来更麻烦。
使用存储过程的步骤:
1、打开SQL Server,界面是这样子的
2、 选择想对应的数据库------选择可编程性找到存储过程----点击鼠标右键新建存储过程
3、 新建存储过程简化格式-----------实例展示
4、选择执行--------刷新
-
5、刷新完会出一下情况,如下图
存储器就这样建好了,希望这篇博客对您有帮助,大家给我多多指导一下,共同进步。