存储过程

存储过程:
定义:存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在

数据库中。
使用存储过程的优点:
1.在服务器端运行,执行速度快。
2.执行一次后,其执行规划就驻存高速缓冲存储器中,以后操作时只需从高速缓冲存储器中调用

已编译后的二进制代码执行,提高了系统性能。
3.确保数据库的安全。
4.自动完成需要预先执行的任务。

存储过程的类型:
系统存储过程:由系统提供,作为命令执行各种操作。
本地存储过程:在用户数据库中创建,可完成特定操作任务。
临时存储过程:只能在一个用户会话中使用。名称以#开头。 
远程存储过程:从远程服务器上调用。 
扩展存储过程:是指在SQL Server环境之外执行的动态链接库,其前缀是sp_

存储过程的语句:
创建格式:
Create procedure procedue_name

[@parameter data_type][output]  
 
  [with]{recompile|encryption}

  as

sql_statement

@paramete是存储过程的形参,data_type用于指定形参的数据类型
Output指示参数是输出参数,可返回信息。
recompile|encryption参数的处理方式。
sql_statement代表过程体包含的T-SQL语句

现有数据库Test,Table(Message)

1.创建带返回集的存储过程

create procedure R1
@
as
begin
select * from [Test].[dbo].[Message]
end

exec R1

2.创建一个要求输入一个输入参数的存储过程

create procedure R2
@ID int=1   
as
begin
select * from [Test].[dbo].[Message]
where ID=@ID
end

exec R2 1 

3.创建一个要求输入两个输入参数的存储过程

create procedure R3
@ID int=1,
@CH char(4)='PA'
as
begin
select * from [Test].[dbo].[Message]
where ID=@ID and CHK_CONN=@CH
end

exec R3 3,'PAS'

4.创建有返回值的存储过程

create procedure R4
@ID int,
@CH char(4),
@THROUGHPUT varchar(50) output
as
begin
select @THROUGHPUT=TX_THROUGHPUT from [Test].[dbo].[Message]
where ID=@ID and CHK_CONN=@CH
end

Declare @THROUGHPUT varchar(50)//声明一个变量用来接收执行过存储过程后的返回值

exec R4 3,'PASS' ,@THROUGHPUT output

select @THROUGHPUT as 'F'//as 后是给返回的列值起的一个别名

5.创建可以更改的存储过程

alter procedure R4

@ID int=1,
@CH char(4),
@THROUGHPUT varchar(50) output,
@Serial varchar(12)output
as
begin
select @THROUGHPUT=TX_THROUGHPUT ,@Serial=SerialNumber from [Test].[dbo].[Message]
where ID=@ID and CHK_CONN=@CH
end

Declare @THROUGHPUT varchar(50),@Serial varchar(12)
exec R4 1,'PASS' ,@THROUGHPUT output,@Serial output
select @THROUGHPUT, @Serial as 'F'

6创建存储信息(if---else)

create procedure R6
@ID int=1,
@CH char(4),
@THROUGHPUT varchar(50) output
as
begin
if exists
(select * from [Test].[dbo].[Message] where ID=@ID and CHK_CONN=@CH)
select @THROUGHPUT='True'
else
select @THROUGHPUT='False'
end

Declare @THROUGHPUT varchar(50)
exec R6 1,'PASS',@THROUGHPUT output
select @THROUGHPUT 'F'

转载于:https://www.cnblogs.com/karrydong/archive/2013/06/11/3131904.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值