CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  非技术版

存储过程出错,提示必须声明变量 '@Rec'。

楼主zitiger(MSN聊天机器人:RobotBB001@hotmail.com)2003-12-03 17:53:57 在 MS-SQL Server / 非技术版 提问

存储过程出错,提示必须声明变量   '@Rec'。  
  CREATE   Procedure   C_ShowMessage  
  (  
  @ClassId int,  
  @Rec int   output  
  )  
  AS  
   
  DECLARE   @TableName   nvarchar(20)  
  SELECT   @TableName   =   'Message'+CAST(@ClassId/7000   AS   NVARCHAR)  
   
  EXEC('SELECT   @Rec   =   count(*)   From   '+@TableName+'   Where   ClassId='+@ClassId)  
   
   
  EXEC('SELECT   [Id],[Name],Content,AddTime   From   '+@TableName+'   Where   ClassId='+@ClassId+'   Order   By   AddTime   Desc')  
   
  GO 问题点数:20、回复次数:2Top

1 楼CrazyFor(冬眠的鼹鼠)回复于 2003-12-03 17:56:51 得分 10

参考:  
   
  declare   @tcnt   int  
  declare   @paras   varchar(100)  
  DECLARE   @SQLString   NVARCHAR(500)  
  set   @paras   ='1,3,5'  
  set   @sqlstring=N'select   @cnt=count(*)   from   sysobjects   where   id   in   ('+@paras+')'  
   
  set   @tcnt=0  
  execute   sp_executesql    
                      @sqlstring,  
                      N'@cnt   int   output',  
      @cnt=@tcnt   output  
  select   @tcnt  
   
   
  select   *   from   sysobjects  
   
   
  参考:  
  Create   Procedure   GetMaxID  
  @TableName   varchar(100),   @ID   int   output  
  as  
  begin  
  declare   @sql   nvarchar(1000)  
  set   @sql='select   @ID   =   count(ID)   from   '+@TableName  
  exec   sp_executesql   @sql,N'@id   int   output',@id   output  
  end  
  Top

2 楼pengdali()回复于 2003-12-03 18:31:00 得分 10

CREATE   Procedure   C_ShowMessage  
  @ClassId int,  
  @Rec int   output  
  AS  
   
  DECLARE   @TableName   nvarchar(20)  
  SELECT   @TableName   =   'Message'+CAST(@ClassId/7000   AS   NVARCHAR(100))  
   
  declare   @sql   nvarchar(4000)  
   
  set   @sql=N'SELECT   @Rec   =   count(*)   From   '+@TableName+'   Where   ClassId='+@ClassId  
   
  exec   sp_executesql   @sql,N'@Rec   int   output',@Rec   output  
   
  EXEC('SELECT   [Id],[Name],Content,AddTime   From   '+@TableName+'   Where   ClassId='+@ClassId+'   Order   By   AddTime   Desc')  
   
  GOTop

相关问题

  • 存储过程出错,必须声明变量@indextable ,急呀急啊
  • 关于存储过程中声明变量的办法
  • 表变量在存储过程中出现了"必须声明变量"的错误,已经声明了啊
  • 存储过程OUT变量?
  • 存储过程出错?
  • 存储过程出错
  • 存储过程出错!
  • 存储过程出错!!急!
  • 存储过程出错!
  • 这个存储过程为什么报错说变量没有声明 麻烦哪位看一下

关键词

  • sql
  • tcnt
  • sqlstring
  • rec
  • classid
  • tablename
  • nvarchar
  • paras
  • cnt
  • output

得分解答快速导航

  • 帖主:zitiger
  • CrazyFor
  • pengdali

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo