CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

请帮忙看一下这段简单语句的错误。。

楼主dellair(dellair)2005-01-20 10:02:24 在 MS-SQL Server / 基础类 提问

if   exists(select   *   from   sysobjects   where   name   =   'counttable')   drop   table   counttable  
  create   table   counttable(tablename   nvarchar(20),record   int)  
  declare   @tablename   nvarchar(20)  
  declare   @i   int  
  declare   @sql   nvarchar(200)  
  declare   detail   cursor   for   select   [name]   from   sysobjects   where   type='u'  
  open   detail  
  fetch   next   from   detail   into   @tablename  
  while   @@fetch_status   =   0  
  begin  
      set   @sql   =   'select   @i=count(*)   from   '+@tablename  
      exec   @sql  
      insert   into   counttable(tablename,record)   values(@tablename,@i)  
      fetch   next   from   detail   into   @tablename  
  end  
  close   detail  
  deallocate   detail  
  select   *   from   counttable  
   
  错误信息提示:未能找到存储过程   'select   @i=count(*)   from   Orders'... 问题点数:20、回复次数:5Top

1 楼dellair(dellair)回复于 2005-01-20 11:27:34 得分 0

没有人来帮帮忙嘛,,,Top

2 楼dellair(dellair)回复于 2005-01-20 11:43:07 得分 0

哪位老大帮帮呀,在线等,,,Top

3 楼dellair(dellair)回复于 2005-01-20 11:48:28 得分 0

现在改成这样  
  if   exists(select   *   from   sysobjects   where   name   =   'counttable')   drop   table   counttable  
  create   table   counttable(tablename   nvarchar(100),record   int)  
  declare   @tablename   nvarchar(100)  
  declare   @i   int  
  declare   @sql   nvarchar(200)  
  declare   detail   cursor   for   select   [name]   from   sysobjects   where   type='u'  
  open   detail  
  fetch   next   from   detail   into   @tablename  
  while   @@fetch_status   =   0  
  begin  
      set   @sql   =   'select     @i   =   count(*)   from   '+   @tablename  
      exec(@sql)  
      insert   into   counttable(tablename,record)   values(@tablename,@i)  
      fetch   next   from   detail   into   @tablename  
  end  
  close   detail  
  deallocate   detail  
  select   *   from   counttable  
   
  错误是:必须声明变量   '@i'。Top

4 楼passionke(每一步都改变未来,却只能有一种结局!)回复于 2005-01-20 12:34:34 得分 20

set   @sql   =   'select     @i   =   count(*)   from   '+   @tablename  
      exec(@sql)  
  改:  
  set   @sql   =   'select     @i   =   count(*)   from   '+   @tablename  
  exec   sp_executesql   @sql,   N'@i   int   output',   @i   outputTop

5 楼dellair(dellair)回复于 2005-01-20 13:05:14 得分 0

解决了,谢谢!Top

相关问题

  • 关联表的语句错误,帮忙看一下啊
  • 帮看一下 UPDATE 语句的语法错误。(在线等)
  • javascript中for语句的错误,帮忙看一下
  • 大家帮我看一下这句sql语句有没语法错误??谢谢!!!
  • 谁帮我看一下 这句 sql语句 又什么错误 老是报错
  • 哪位朋友帮我看一下这句SQL语句哪里有错误
  • 大家帮忙看一下这个select语句是什么错误?
  • 这个错误应该很简单,大伙帮看一下
  • 请各位大虾看一下,这条insert into语句到底有什么语法错误?
  • 求高手帮我查看一下我的Oracle语句有什么地方错误,有点麻烦

关键词

  • sql
  • counttable
  • tablename
  • nvarchar
  • declare
  • detail
  • record
  • sysobjects where
  • count
  • table

得分解答快速导航

  • 帖主:dellair
  • passionke

相关链接

  • SQL Server类图书

广告也精彩

反馈

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