存储过程语法规则及调用方式 sql

存储过程的理论性的东西我就不多说了!我就直接写它的简单应用把!

一:无参数存储过程:

1. 语法规则

create procedure  存储过程的名称

as

--如果不需要在应用程序中使用返回的行数,就添加上“set nocount on”

set nocount on

要执行的sql语句(这边可以写多条sql语句的)

go

1.1实例:创建一个叫pro_updt_1的存储过程

if exists(select * from sysobjects where name='pro_updt_1')
    drop proc pro_updt_1
go

 

--上面的意思是当名叫pro_updt_1的存储过程存在的时候,就删除该存储过程

create procedure pro_updt_1

as

set nocount on

select * from table_a

go

 

2.调用方法:exec  存储过程的名称

1.2实例:调用pro_updt_1存储过程

exec  pro_updt_1

 二:有输入参数的存储过程:

1.语法规则

create procedure  存储过程的名字

 @定义的参数名称 参数类型,

@定义的参数名称 参数类型,

...........

as

要执行的sql语句(这边可以写多条sql语句的)

go

2.1实例:创建一个有输入参数叫pro_updt_2的存储过程

create procedure pro_updt_2

@number  int ,

@name  varchar(50)

as

set nocount on

select *  from  table_a where number=@number and name=@name

go

 

2.调用方法 (参数要按存储过程里的参数顺序写)

exec  存储过程的名称  参数1,参数2

2.2实例:调用 pro_updt_2存储过程

exec  pro_updt_2  1,'李宁'

三:带输出参数的存储过程

1.语法规则(输出参数定义必须放在输入参数的最后)

create procedure  存储过程的名字

 @定义的参数名称 参数类型,

@定义的参数名称 参数类型,

...........

@定义的参数名称 参数类型 output,

@定义的参数名称 参数类型 output,

。。。。。

as

要执行的sql语句(这边可以写多条sql语句的)

go

3.1实例:两个值求和与求差的存储过程

create procedure pro_updt_3
 @number1 int,
 @number2 int,
 @sum  int output,
 @jsum int output
as

set nocount on
select @sum=@number1+@number2  
select @jsum=@number1-@number2  
go

 

2。调用方法:

declare  参数名1  参数类型
declare  参数名2  参数类型
declare  参数名3  参数类型

declare  参数名4  参数类型
set 参数名1=值
set 参数名2=值
set 参数名4=值
exec pro_updt 参数名1,参数名2,参数名3 output,参数名4 output

--下面这句是显示出输出值
print convert(char(5),参数名3) +convert(char(5),参数名4)

3.2实例:调用pro_updt_3存储过程

declare  @number1 int
declare  @number2 int
declare  @sum int
declare  @jsum int
set @number1=10
set @number2=2
set @sum=6
set @jsum=2
exec pro_updt_3 @number1,@number2,@sum output,@jsum output
print convert(char(5),@sum)+convert(char(5),@jsum)

 

 

 

 

posted @ 2012-03-22 17:24  偶不是大叔  阅读(968)  评论(0)    收藏  举报