存储过程的创建于应用

系统存储过程的目的在于能够方便地从系统表中查询信息,或者完成于更新数据库表相关的管理任务或其他的系统管理任务。

一.存储过程的分类

在存储过程中可以声明变量、执行条件判断语句等其他编程功能。SQL Server中有多种类型的存储过程,总的可以分为一下三类,分别是:系统存储过程,用户存储过程和扩展存储过程。
(1)系统存储过程:系统自身提供的存储过程,可以作为命令执行各种操作。系统存储过程创建并存放于系统数据库master中,一些系统存储过程只能由系统管理员使用,而有些系统存储过程通过授权可以被其他用户所使用。
(2)自定义存储过程:用户使用T-SQL语句编写的、为了实现某一特定业务需求,在用户数据库中编写的T-SQL语句集合,用户存储过程可以接受输入参数、向客户端返回结果和信息、返回输出参数等。
(3)扩展存储过程:扩展存储过程是 SQL Server 实例可以动态加载和运行的 DLL。扩展存储过程是使用 SQL Server 扩展存储过程 API 编写的,可直接在 SQL Server 实例的地址空间中运行。
1.存储过程的好处
(1)重复使用。存储过程可以重复使用,从而可以减少数据库开发人员的工作量。
(2)提高性能。存储过程在创建的时候就进行了编译,将来使用的时候不用再重新编译。一般的SQL语句每执行一次就需要编译一次,所以使用存储过程提高了效率。
(3)减少网络流量。存储过程位于服务器上,调用的时候只需要传递存储过程的名称以及参数就可以了,因此降低了网络传输的数据量。
(4)安全性。参数化的存储过程可以防止SQL注入式的攻击,而且可以将Grant、Deny以及Revoke权限应用于存储过程。

二.创建存储过程

1.创建存储过程

--存储过程的语法
CREATE  PROC[EDURE]  存储过程名
              @参数1  数据类型 = 默认值,
               …… ,
              @参数n  数据类型 OUTPUT
            AS
            SQL语句
    GO
--创建存储过程
CREATE PROC CountEmployee
 @deptno INT
AS
SELECT COUNT(*) FROM employee WHERE dept_no=@deptno
GO
--调用存储过程
EXEC CountEmployee '20'

2.删除存储过程

DROP PROC CountEmployee

三.修改存储过程

--修改前
CREATE PROC CountEmployee
 @deptno INT
AS
SELECT COUNT(*) FROM employee WHERE dept_no=@deptno
GO
--修改后
ALTER PROC CountEmployee
AS
BEGIN
    SELECT e_job,COUNT(*) AS Total FROM employee 
    GROUP BY e_job
END
GO

四.查看存储过程

EXEC sp_help CountEmployee
EXEC sp_helptext CountEmployee

五.重命名存储过程

sp_rename 'old_name','new_name'
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。