SQL关于output型参数的说明

本文通过两个实例对比,清晰地解释了SQL中output类型参数的工作原理,类似于C语言中的地址传递参数,能够实现对实参的永久修改。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在SQL中网友常常遇到关于output类型参数。对于这种类型的参数,书上描述的可能不太清楚直观,造成大家对这一类型参数的使用有一定的困惑。其实output类型参数的性质就类似C语言编程里的地址传递参数,地址传递参数对型参每次修改都会改变实参的原值,即使参数跳出作用范围,实参也会保留最终的修改。据个例子:

CREATE PROC OP(@out varchar(100) output)

AS

  set @out = @out + 'aaaa'

GO

declare @str varchar(100)

set @str = 'A'

exec OP @str output

select @str

结果为:Aaaaa

 

CREATE PROC P(@out varchar(100))

AS

  set @out = @out + 'aaaa'

GO

declare @str varchar(100)

set @str = 'A'

exec OP @str

select @str

结果为:A

 

从这个例子就可以看出来了,第一段代码中@str的内容经过存储过程修改后,将最终结果保存了下来,而在第二段代码中对@str的修改没有保存下来,仍就显示@str原来的值'A'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值