放分,存储过程中的参数有何限制 我想既当输入参数使用,也想当输出参数使用,可以这样用吗?另外是不是输出参数一定要在最后面,有没有限制的,谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 create procedure yourP @inp int ,@outp int output as set @outp=@inp+100 return @inp ------- declare @tt int,@oo int exec @tt=yourP 1,@oo output print @tt print @oo --楼主说的情况都没有限制,我想既当输入参数使用,也想当输出参数使用,可以这样用吗?可以,注意输入的值和输出的值也许不同(通过了计算) if object_id('spTest') is not null drop proc spTestGO----创建测试存储过程create proc spTest @inout varchar(10) output asselect @inoutset @inout = 'Hello'GO----执行存储过程declare @str varchar(10)set @str = 'OK!'EXEC spTest @str outputselect @str----清除测试环境drop proc spTest/*结果1OK!*//*结果2Hello*/ 无法在 sysdepends 中添加当前存储过程所对应的行,因为缺少该存储过程所依赖的对象 'yourP'。仍将创建该存储过程。 create proc powerTest @param int outputasselect @param=power(@param, 2)returngo--执行declare @i intset @i=5exec powerTest @param=@i outputselect @i create procedure yourP @inp int ,@outp int output as set @outp=@inp+100+@outp return @inp go ------- declare @tt int,@oo int set @oo=9exec @tt=yourP 1,@oo output print @tt print @oo create procedure yourP @inp int ,@outp int output as set @outp=@inp+100 --return @inp go ------- declare @tt int,@oo int exec @tt=yourP 1,@oo output print @tt print @oo drop procedure yourP go create procedure yourP1 @inoutp int output as set @inoutp=@inoutp+100 return @inoutp go ------- declare @tt int set @tt=5print @ttexec @tt=yourP1 @tt output print @tt drop procedure yourP1go--对比着两个 create procedure yourP @outp int output ,@inp int as set @outp=@inp+100+@outp return @inp go ------- declare @tt int,@oo int set @oo=9exec @tt=yourP @oo output,1 print @tt print @oo 动态SQL中引用变量和常量的连接符如何掌握? 企业管理器中修改表数据,不能激活触发器吗? 乡亲们帮帮小弟我,紧啊。SQL函数返回值 关于Select * Into TAB_Test...... 大数据量多条件情况下怎么提高数据查询效率? 跨数据库连表 一个关于存储过程的离奇的现象 sql语句怎么写? 如何在一个视图中添加一个临时的列名并且实现查询数据 关于sql编程的一点点基本问题 谁有仓库管理数据库表设计的案例? 如何将多个结构一致的数据库从远程传输上来,集成一个数据库?
@inp int ,@outp int output
as
set @outp=@inp+100
return @inp
-------
declare @tt int,@oo int
exec @tt=yourP 1,@oo output
print @tt
print @oo --楼主说的情况都没有限制,
我想既当输入参数使用,也想当输出参数使用,可以这样用吗?
可以,注意输入的值和输出的值也许不同(通过了计算)
drop proc spTest
GO
----创建测试存储过程
create proc spTest @inout varchar(10) output
as
select @inout
set @inout = 'Hello'
GO----执行存储过程
declare @str varchar(10)
set @str = 'OK!'
EXEC spTest @str output
select @str----清除测试环境
drop proc spTest
/*结果1
OK!
*/
/*结果2
Hello
*/
as
select @param=power(@param, 2)
return
go--执行
declare @i int
set @i=5
exec powerTest @param=@i output
select @i
@inp int ,@outp int output
as
set @outp=@inp+100+@outp
return @inp
go
-------
declare @tt int,@oo int
set @oo=9
exec @tt=yourP 1,@oo output
print @tt
print @oo
@inp int ,@outp int output
as
set @outp=@inp+100
--return @inp
go
-------
declare @tt int,@oo int
exec @tt=yourP 1,@oo output
print @tt
print @oo drop procedure yourP
go
@inoutp int output
as
set @inoutp=@inoutp+100
return @inoutp
go
-------
declare @tt int
set @tt=5
print @tt
exec @tt=yourP1 @tt output
print @tt
drop procedure yourP1
go--对比着两个
@outp int output ,@inp int
as
set @outp=@inp+100+@outp
return @inp
go
-------
declare @tt int,@oo int
set @oo=9
exec @tt=yourP @oo output,1
print @tt
print @oo