什么是存储过程


存储过程是保存在数据库的函数,可以被应用程序或其它存储过程调用。

存储过程有什么用


用于实现业务逻辑(特别是需要事务的业务)。
1 优点
减少网络通信量
执行速度更快
更强的适应性(有时候发布系统无需更新客户端)
分布式工作
减少客户端的负荷
2 缺点
增加服务器的负荷

 

常用的系统存储过程

系统存储过程    说明
sp_help    用于查看对象信息
sp_helpdb    用于查询数据库的信息
sp_helpconstraint    查看某个表的约束
sp_helpindex    查看某个表的索引
sp_databases    用于显示所有数据库的信息,如数据库名和数据大小。
sp_renamedb    更改数据库的名称
Sp_rename    用于在当前数据库更改用户创建的对象名称,如数据表、字段、索引等
sp_tables    返回当前数据库中数据表和视图
sp_columns    返回某个数据表或视图的列信息
sp_password    添加或修改登录帐户的密码

调用系统存储过程

exec sp_databases  –列出当前系统中的所有数据库
use booksmanager
go
exec sp_tables  –列出数据库booksmanager中所有数据表和视图
exec sp_columns books –列出图书表的列信息
exec sp_help books –查看图书表的所有信息
exec sp_helpconstraint books –查看图书表的约束
exec sp_helpindex books –查看图书表的索引

扩展存储过程

扩展存储过程(Extended  stored  procedured)是对动态链接库(DLL)函数的调用。
扩展存储过程通常是以“XP_”为前缀。

用户自定义存储过程

1 不带参数的存储过程

(1)语法
CREATE  PROCEDURE  存储过程名
AS
  ………
  ………
  ………
建议:自定义存储过程的名称最好以USP_开头
(2)调用带输入参数的存储过程
EXEC  存储过程名

2 带参数的存储过程

(1)语法
CREATE  PROCEDURE  存储过程名
    @参数1  数据类型 [=默认值],
     ……
    @参数n  数据类型 [=默认值]
AS
  ………
  ………
  ………
(2)调用带输入参数的存储过程
方式一:
exec usp_score_byparam \’SQL Server基础编程\’,70
方式二:
exec usp_score_byparam @coursename=\’SQL Server基础编程\’ ,@pass=70

3 带输出参数的存储过程

(1)语法
CREATE  PROCEDURE  存储过程名
    @参数1  数据类型 [=默认值],
     ……
    @参数n  数据类型 OUTPUT
AS
  ………
  ………
  ………
(2)调用带输出参数的存储过程
declare @result  int
exec usp_ADD 20,30,@result output
print \’运算结果:\’+str(@result,5)

版权声明:本文为cmhunter原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/cmhunter/p/4299875.html