使用存储过程的参数的OUTPUT选项
解决方案 »
- SQL SERVER查询分析器中执行SQL文件的命令是什么
- [向ALL提问]每日一个小问题 2
- 求个合并表sql 语句,谢谢了
- System.Data.SqlClient.SqlException: 用户 'sa' 登录失败。 大家帮帮忙把?
- 使用log explorer恢复数据,选择时间开始点时很后面,今天五点以后的才找得到,怎么办啊,救命啊
- 内网SQL SERVER连接问题
- 本地Excel导入到远程SQL
- SQL用户自定义函数如何使用表的索引
- 讨论:xml与sql2000(800分讨论)
- 求一SQL语句??
- Excel工作表表名中存在空格造成无法正常导入
- varchar 值 '2008111200000048' 的转换溢出了 int 列。超出了最大整数值。
return只能返回一个返回值。楼主是指存储过程的返回参数吧?
use tempdb
gocreate proc p1
@id int output --输出参数
asset @id = 1
return 0 --返回值
gocreate proc p2
as
declare @id int
declare @re_value intexec @re_value = p1 @id outputselect @re_value,@id
goexec p2
go/**
0 1
**/
drop proc p1
drop proc p2
go
use tempdb
gocreate proc p1
@id1 int output, --输出参数1
@id2 int output --输出参数2
asset @id1 = 1
set @id2 = 2
return 0
gocreate proc p2
as
declare @id1 int
declare @id2 int
declare @re_value intexec @re_value = p1 @id1 output,@id2 outputselect @re_value,@id1,@id2
goexec p2
go/**
0 1 2
**/
drop proc p1
drop proc p2
go
declare @1 int
declare @2 int
exec my_proc2 @1 output, @2 output--在存储过程2中将参数赋值就可以了
select @1
select @2
as
declare @v1 int,@v2 int
exec pb @v1 output,@v2 output
select @v1,@v2
gocreate proc pb
@v1 int output,
@v2 int output
as
set @v1=1
set @v2=2
go
--测试:
exec pa
/*
----------- -----------
1 2(1 row(s) affected)
*/
drop proc pa
drop proc pb
在存储过程B里面有个FAILURE:
begin
SELECT @Tmp_Return AS 'Return',@Tmp_Message AS 'Message'
end所以我在A存储过程调用了B以后,
会返回这两个给我的,
我只是需要@Tmp_Return判断B到底有没有执行成功
我在查询分析器里面运行A后,
因为A自己有一个select显示,
然后他调用B后又有一个select显示
结果显示两个表了
搞的外部程序无法读取A的返回
FAILURE:
begin
SELECT @Tmp_Return AS 'Return',@Tmp_Message AS 'Message'
end
叫做返回值
呵呵,不怎么懂
反正是不想调用A后得到两个表返回,
只需要A的