当前位置:首页 » 编程语言 » sql存储过程out参数
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql存储过程out参数

发布时间: 2023-07-11 02:54:49

sql存储过程out与output有什么不同,感觉它俩是同一个意思,一样的用法,都是用于输出。求

你好题主,刚好最近我也在学习SQL,不过我在学习的是Oracle,

MSSQL和Oracle倒是有很多不同的地方。

所以我特意打开MSSQL的服务,在MSSQL里写了这么一个脚本,希望能帮助到你。

因为本人是做.Net方向的开发者,所以用了C#语言中

以下是脚本内容:

--SQLQueryCreateByFaywool
createprocProc_OutPutTest--创建
@numAint,--numA为存储过程的参数
@numBint,--numB为另一参数
@numReturnintoutput--此为Output,也就是存储过程的返回值
as
begin
if(@numA>@numB)
set@numReturn=@numA
else
set@numReturn=@numB--A>B的时候返回A,否则返回B
end

go


declare@numReceiveint--先声明一个变量用来接收存储过程的返回值
execProc_OutPutTest1,2,@numReceiveoutput
--调用存储过程并用@numReturn接收存储过程的返回值
select@numReceive--将会返回(1,2)中较大的数字:2

go

createprocProc_OutTest--新建存储过程
@numCint,--参数C
@numDint,--参数D
@numEintout--参数E用来返回
as
begin
if(@numC>@numD)
set@numE=@numC--如果C>D,将C赋值给E
else
set@numE=@numD--否则将D赋值给E
end

go


declare@numOutReceiveint--声明一个变量
set@numOutReceive=10000--将变量赋值为10000
select@numOutReceive--变量变为10000
execProc_OutTest1,2,@numOutReceiveout--将(1,2,@numOutReceive)三个数字传入存储过程
select@numOutReceive--再看变量就变成2了
--总结:

--Out是参数,传进、传出,缺一不可,在存储过程定义的时候一定要有out标识,
--在调用该存储过程的时候也要有out标识


--OutPut则是相当于存储过程的返回值
--不用传进,也不能传进
--它是在存储过程中定义,并且输出的

--一句话:Out相当于C#中的ref参数(传进、传出缺一不可),而且传进传出的时候都要标识为ref
--OutPut则为C#中的方法返回值类型,在方法定义时就已经定好了

② SQL中存储过程参数传递有哪几种方法如何获取存储过程的返回值

参数传递?
参数有in参数、out参数、in out参数
变量可用set和select赋值

获取返回值只需设置变量、到时输出就行

单行数据定义固定变量数、
如果结果是数据集、要用游标cursor

③ plsql中怎么调用带输出参数的存储过程

1、首先打开一个的PLSQL Developer的界面中,点击左上角的工具,如下图所示。

④ 帮忙解释一个SQL Server 中存储过程的输入和输出参数的区别

1. 如果存储过程h3已经存在,就drop掉
2. 创建存储过程h3
参数P1,P2,其中P2为输出参数
存储过程功能:取学号为P1的学生姓名,由P2输出
3. 定义变量,调用存储过程,返回学号是1002的学生姓名

⑤ sqlserver存储过程返回out参数类型

SQL2008可用表类型
SQL2005以上版本可用xml类型

之前的版本返回结果集

其它引用时可用临时表或表变量接收结果集

⑥ 关于SQL带参数存储的问题

你用out输出参数,那么你调用这个存储过程时,就要先定义一个变量来保存你要传出的参数值,以你的为例:declare @outXM nchar(10) declare @outXSSL int declare @outXSRQ SmallDatetime exec proc_abc 'G00',@outXM output,@outXSSL output,@outXSRQ output
上面是我手写的,不一定对,但方式肯定是这样的