CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

求助,存储过程里面,使用了top n的语句,这个n想设置成变量,如何实现?

楼主slamz(龙魂)2005-05-24 12:38:04 在 MS-SQL Server / 基础类 提问

直接用@n不行,用exec执行字符串但无法得到我需要的返回值  
  请高手指点一下,谢谢 问题点数:20、回复次数:9Top

1 楼hsj20041004(光芒)回复于 2005-05-24 12:52:26 得分 0

declare   @num   int    
  declare   @sql  
  select   @num=9  
  select   @sql='select   top'+   @num   +'   *   from   tablename   order   by   id'  
  exec(@sql)Top

2 楼slamz(龙魂)回复于 2005-05-24 13:02:58 得分 0

谢谢hsj的回复,这个方法我也知道,问题就在我如何获取这个脚本执行后的结果?例如将结果集赋值给变量?Top

3 楼cegcegceg(CEG)回复于 2005-05-24 13:08:45 得分 0

@num通过参数传进来Top

4 楼slamz(龙魂)回复于 2005-05-24 13:12:36 得分 0

可能我描述不太明白吧.  
  我的意思是用exec执行了这句sql后,如何获得结果  
   
  例如:   exec('select   max(id)   from   tablename   order   by   id')  
  如何获得max(id)这个结果?Top

5 楼hsj20041004(光芒)回复于 2005-05-24 13:19:35 得分 0

执行后的结果是一个记录集!!!  
  你要把他返回???Top

6 楼slamz(龙魂)回复于 2005-05-24 13:26:35 得分 0

例如前面我说的,我执行了语句后,需要获得max(id)的值,并用于其他方面的运算.  
  或者说这个记录集生成后我该如何读取这个记录集里面的数据呢?Top

7 楼hsj20041004(光芒)回复于 2005-05-24 13:31:21 得分 20

select   @sql=   'select   @num=max(id)   from   tablename   order   by   id'  
    exec   sp_executesql   @sql,   N'@num   Int   out',@num   output  
  select   @numTop

8 楼hsj20041004(光芒)回复于 2005-05-24 13:32:50 得分 0

这样不就可以了  
  declare   @num   int  
  select   @num=max(id)   from   tablename   order   by   id  
  select   @num  
  Top

9 楼slamz(龙魂)回复于 2005-05-24 14:32:19 得分 0

hsj兄,用sp_executesql已经成功实现了,实在非常感谢你的帮忙!:)Top

相关问题

  • 100分,^_^ 存储过程中的sql语句的变量传送
  • 存储过程中sql语句如何引用变量?
  • 存储过程中怎么处理sql语句中的变量
  • 存储过程中字段名为输入变量,那么存储过程update 语句该怎么做?
  • 存储过程中,在查询语句中添加变量的问题
  • 请问select语句中能不能用变量名(关于存储过程的)?
  • @a 变量是一句sql语句,怎么用到存储过程中?
  • 存储过程中int型变量如和在拼凑SQL语句中使用?
  • 如何得到存储过程中 select语句的结果(表名为变量)
  • 真不明白:关于存储过程中sql语句 "like 变量% "的问题!

关键词

  • 执行
  • sql
  • num
  • 结果
  • exec
  • tablename order
  • max
  • 获得
  • declare
  • select

得分解答快速导航

  • 帖主:slamz
  • hsj20041004

相关链接

  • SQL Server类图书

广告也精彩

反馈

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