1. 存储过程没有返回值的情况(即存储过程语句中没有
return
之类的语句)
---------------------------------------------------------------------------------------------------------------------------------------------------
2. 获得存储过程的返回值--通过查询分析器获得
(1)不带任何参数的存储过程(存储过程语句中含有
)
---创建存储过程
CREATE PROCEDURE testReturn
AS
return
145
GO
---执行存储过程
DECLARE @RC
int
exec @RC=testReturn
select @RC
---说明
查询结果为145
(2)带输入参数的存储过程(存储过程语句中含有
)
---创建存储过程
create procedure sp_add_table1
@in_name varchar(100),
@in_addr varchar(100),
@in_tel varchar(100)
as
if
(@in_name =
''
or @in_name
is
null
)
1
else
begin
insert into table1(name,addr,tel) values(@in_name,@in_addr,@in_tel)
0
end
---执行存储过程
<1>执行下列,返回1
declare @count
exec @count = sp_add_table1
''
,
'中三路'
'123456'
select @count
<2>执行下列,返回0
select @count
---说明
查询结果不是0就是1
例子A:
---创建存储过程
create procedure sp_output
@output
output
as
set
@output = 121
1
---执行存储过程
<1>执行下列,返回121
declare @
out
int
exec sp_output @
out
output
select @
out
<2>执行下列,返回1
int
int
exec @count = sp_output @
output
select @count
---说明
例子B:
---创建存储过程
create procedure sp_output
output
as
@output = 121
---执行存储过程
<1>执行下列,返回121
int
output
out
<2>执行下列,返回0
int
int
output
select @count
---说明
总结:
(1)存储过程共分为3类:
(2)含有
的存储过程其返回值为
返回的那个值
(3)没有
的存储过程,不论执行结果有无记录集,其返回值是0
---------------------------------------------------------------------------------------------------------------------------------------------------
3.获得存储过程的返回值--通过程序获得
---------------------------------------------------------------------------------------------------------------------------------------------------
sqlParameter[] cmdParms = { ..,
new
sqlParameter(
"@return"
ottom:auto!important; float:none!important; height:auto!important; left:auto!important; line-height:2em!important; outline:0px!important; overflow:visible!important; position:static!important; right:auto!important; top:auto!important; vertical-align:baseline!important; width:auto!important; font-family:'Courier New',sqlDbType.Int)};
cmdParms[cmdParms.Length - 1].Direction = ParameterDirection.ReturnValue;或者
cmdParms[cmdParms.Length - 1].Direction = ParameterDirection.Output或者
cmdParms[cmdParms.Length - 1].Direction = ParameterDirection.Input;
得到返回值
object
bj = cmdParms[cmdParms.Length - 1].Value;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。