如何返回存储过程中的值

rexchai 2011-01-06 03:26:54
比如有个存储过程:proc_add
里面结构大概是这样的
begin
begin tran
begin try
相关添加语句
commit
end try
begin catch
begin
rollback
raiserror('执行错误',16,1)
end
end catch
end
想问的是用OUTPUT返回一个值应该写在哪里如何写?
我用ASP写的,如何去拿返回出来的值
...全文
98 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
luoyefeng1022 2011-01-06
  • 打赏
  • 举报
回复
SqlParameter param3 = new SqlParameter("@Remark", SqlDbType.Text);
param3.Direction = ParameterDirection.Input; //输入参数
param3.Value = this.richRemark.Text.Trim();
cmd.Parameters.Add(param3);
在传入参数时,可以定义参数的类型 ParameterDirection.output 即可
华夏小卒 2011-01-06
  • 打赏
  • 举报
回复

返回自增列id ?

@@identity
scop_identity 看你情况,用哪个


[Quote=引用 2 楼 rexchai 的回复:]
我就是想返回一个新添加记录的ID
你这样写的话我需要再写个存储过程来运行前一个存储过程,才能拿到返回的值对吗?……
[/Quote]

不用,asp里应该有方法调用
Mr_Nice 2011-01-06
  • 打赏
  • 举报
回复
@@identity 如果ID是自增列的话,在添加之后,可以用此变量获得。
rexchai 2011-01-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 js_szy 的回复:]

看你返回什么值啊,写哪里都可以,只要不写在语法报错,或者proc 外面来


至于怎么调用

SQL code
declare @s int

exec proc_add @s output

select @s
[/Quote]

我就是想返回一个新添加记录的ID
你这样写的话我需要再写个存储过程来运行前一个存储过程,才能拿到返回的值对吗?
华夏小卒 2011-01-06
  • 打赏
  • 举报
回复
看你返回什么值啊,写哪里都可以,只要不写在语法报错,或者proc 外面来


至于怎么调用

declare @s int

exec proc_add @s output

select @s

34,587

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧