SQL Server存储过程实例

SQL Server存储过程

SQL Server中的存储过程是由一个或者多个T-SQL语句组成的一个集合。在数据库编程过程中经常会使用到存储过程,常用的程序代码段通常被创建成存储过程,一次创建多次调用。相比于SQL语句,存储过程更方便、快捷、安全;

1.存储过程的概念
存储过程中可以包含数据库中执行操作的程序语句,也包含调用其它过程。存储过程可以接收和输出参数,向调用它的程序返回值。存储过程被调用后,会返回给调用它的程序状态值。以表明调用的成功或者调用的失败以及调用失败的原因。

2.存储过程的好处
(1)减少网络流量
在客户端和服务器的交互过程中,T-SQL语句中的每个代码行在执行是都是要利用网络发送的。如果代码行被封装成存储过程,那么只有对执行存储过程语句的调用才会利用网络发送,因此存储过程可以显著地减少客户端和服务器之间的网络流量。
(2)增强安全性
在客户端和服务器之间调用存储过程时,只有执行存储过程的语句是可见的,用户无法看到或访问到定义存储过程时所涉及的数据库对象,便无法破坏这些对象。还可以使用为存储过程加密来保障存储过程的安全。
(3)提高编程效率
存储过程对常用代码的封装使用消除了不必要的重复代码编写操作,降低了代码的不一致性,并允许拥有权限的用户访问和执行代码,提高了编程效率。

3.创建存储过程
(1)创建不带参数的存储过程
格式:

create procedure 存储过程名
[with encryption]
[with recompile]
as
T-SQL语句

create procedure命令表示创建存储过程。
with encryption命令时可选项,可以为存储过程的创建文本加密。
with recompile命令时可选项,使存储过程在执行时不保存执行计划,在每次执行时重新编译,以防止覆盖已存在于内存中的执行计划。
(2)创建带参数的存储过程
格式:

create procedure 存储过程名
@参数名 数据类型[(长度)][,....]
[with encryption]
[with recompile]
as
T-SQL语句

例:
(1)创建名为“P_客户信息表_地址”的存储过程,查找出“广东省广州市”的客户信息。(不带参数)
SQL Server存储过程实例_第1张图片
(2)创建名为“P-客户信息表-地址x”的存储过程,用来查找出指定地址的客户信息。
SQL Server存储过程实例_第2张图片
代码中@address是用来存放用户输入的地址的参数。它的数据类型必须与与它比较的“地址”字段的数据类型兼容,否则执行时会产生错误。
4.修改存储过程

alter procedure 存储过程名
[@参数名 数据类型 【(长度)】【,...,】] @参数名 数据类型
【(长度)】output[,....]
as
T-SQL语句

5.删除存储过程

格式:
drop procedure 存储过程名
例:drop procedure p_客户信息表_地址

你可能感兴趣的:(SQL Server存储过程实例)