首页 新闻 会员 周边 捐助

sql server 2000中sql存储过程中select语句中top不支持参数怎么办?

0
悬赏园豆:5 [已关闭问题] 关闭于 2013-03-24 19:40

select top @Topn  id,gdir,gfla from Gnane where fid = @fid AND zid = @zid order by id desc  出错

 

下写法除外,因为可读性差:

exec('select top '+@Topn+' id,gdir,gfla  from Gname where fid = @fid AND zid = @zid order by id desc');

小小池的主页 小小池 | 初学一级 | 园豆:30
提问于:2012-04-08 16:17
< >
分享
所有回答(5)
1

SQL Server 2000似乎只能用拼接方式,2005以上可以用RowCount
http://www.cnblogs.com/downmoon/archive/2007/12/29/1019686.html

邀月 | 园豆:25475 (高人七级) | 2012-04-08 19:34
0

SET ROWCOUNT @Topn 

dudu | 园豆:30778 (高人七级) | 2012-04-09 14:26

select top @Top1  id,gdir,gfla from (select top @Top2  id,gdir,gfla where fid =1 order by id desc)

SET ROWCOUNT @Topn  能用吗??好像是不行吧

支持(0) 反对(0) 小小池 | 园豆:30 (初学一级) | 2012-04-09 17:41

@小小池: RowCount是2005以上版本才可用的,具体可看我提供的链接

支持(0) 反对(0) 邀月 | 园豆:25475 (高人七级) | 2012-04-10 12:32

@邀月: 2000 sp3 我试过也可以,就是

select top @Top1  id,gdir,gfla from (select top @Top2  id,gdir,gfla where fid =1 order by id desc)

两个不一样的top 参数 不知怎么用

 

支持(0) 反对(0) 小小池 | 园豆:30 (初学一级) | 2012-04-10 20:23
0

用 ROE_NUMBER 来解决

韩天伟 | 园豆:697 (小虾三级) | 2012-04-25 12:40
0

升级到2005以后版本。

小材小用 | 园豆:639 (小虾三级) | 2012-04-26 08:21
0

试试这样呢 

select top(@Topn)  id,gdir,gfla from Gnane where fid = @fid AND zid = @zid order by id desc

gunsmoke | 园豆:3592 (老鸟四级) | 2012-07-12 08:07

为什么都用这种括号加起来的方式,不行的啊

支持(0) 反对(0) cx199055 | 园豆:4 (初学一级) | 2013-04-12 11:51
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册