收录日期:2019/04/24 08:33:29 时间:2016/05/24 10:41:46 标签:基础类
我写了如下存储过程:
Create Procedure GetAdd
@InAddress varchar(30)
@OutCount int output
AS
Select @OutCount = Count(*) From [news] where title=@InAddress
Go
编译通过,运行也正常,但我现在想将@InAddress变量的值也打印出来,我改写如下:
Create Procedure GetAdd
@InAddress varchar(30) output
@OutCount int output
AS
Select @OutCount = Count(*) From [news] where title=@InAddress
Go
但编译时出现下列错误提示:
服务器: 消息 170,级别 15,状态 1,过程 GetAdd,行 3
第 3 行: '@OutCount' 附近有语法错误。
服务器: 消息 137,级别 15,状态 1,过程 GetAdd,行 5
必须声明变量 '@OutCount'。
但我的代码中明明已经声明了@OutCount变量了,请教各位,参数中是否只能有一个参数可以是返回参数的?如果可以有多个参数为返回参数的,那正确的代码应该怎么写呢?望各位指教,谢谢。
參數間掉了逗號:
Create Procedure GetAdd
@InAddress varchar(30) output,
@OutCount int output
AS
Select @OutCount = Count(*) From [news] where title=@InAddress
Go
Create Procedure GetAdd
@InAddress varchar(30) output
@OutCount int output
AS
declare @sql
select @sql='Select'+ @OutCount+' = Count(*) From [news] where title='+@InAddress
exec sp_executesql @sql,N'declare @InAddress varchar(30) ',@InAddress out
Go
存储过程中声明一个变量既用作输入参数,又用作输出参数应该不行的。
你可以多声明一个变量,把输入变量放进去,然后传出这个变量就可以了。
Create Procedure GetAdd
@InAddress varchar(30),
@InAddres  varchar(30) output,
@OutCount int output
AS
select @InAddres=@InAddress
Select @OutCount = Count(*) From [news] where title=@InAddress
Go

试一试!
--一个简单的例子
--建立存储过程
use pubs
go
Create Procedure GetAdd
@InAddress varchar(30),
@OutCount  int output,
@OutCount2 int output
AS
Select @OutCount = Count(*) From [authors] where [au_lname]=  @InAddress
Select @OutCount2= @OutCount+1
Go

--执行存储过程
declare @a int
declare @b int
exec getadd @InAddress='White',@OutCount=@a output,@OutCount2=@b output
print @a
print @b

--删除存储过程
drop procedure GetAdd

问到简单的题目 有读ie缓存的资料吗? 能否使用浏览器浏览统计图? 关于JComboBox的一些问题 高分求解决方案 有关 xp激活的问题 请教接口的问题! jbuilder中编译ejb的部署描述在什么地方写? 高手请进,某个端口已打开,怎样知道是由哪个程序打开的? 关于sql变量的问题 VC字符串操作问题 探讨薪资问题 高手请进,某个端口已打开,怎样知道是由哪个程序打开的? 编译时找不到实际存在的头文件!在线等待大侠出手...... 怎样找回路由器密码? 兄弟们,怎么让自己做的网页不能被下载? 一个比较弱的问题,关于容器的概念,request 和 session之间的区别?谢谢 两个关于windows XP的小问题,100分奉上,不行再加100分 正在学习继承中的。。。。。。。。 如何在位图中实现CAD中的捕捉功能? 在WINME下环境变量的设置 C#如何读取image or BLOB字段,然后存为一个临时文件,然后再写到数据库里。 某个端口已打开,怎样知道是由哪个程序打开的? 难道必须给高分才给帮助回答问题吗? c++ builder 串口通信编程能作什么呢? 奇怪,vector的iterator不能有指针的用法 \"->\" ?? 如何设置DataGrid中每一列宽度? LEA和LD区分!!!!!!!!!! 关于ODBE 请问X11,Xt应该安装哪个rpm包?