[已解决问题] sql存储过程top参数
提问时间: 2008-01-06 15:47
悬赏分:20 浏览:1103 次
我想向sql2005 中top传递一个参数,不过总是出现错误,我在网上搜索了一下,大致有两种解决方法一种是
create procedure sel_getuser
@top int
as
declare @sql varchar(8000)
set @sql=select top +cast(@top as varchar(8))+ * from users
exec (@sql)
go

不过我觉得exec的效率比较低。
另一种方法是:
create procedure sel_getuser
@top int
as
set rowcount @top
select * from users
set rowcount 0
go
有没有比这两种方法更好的?
提问者:黄海 - 初学一级
所有回答(4)
SELECT TOP(@top) * FROM ... ?
9个月前   回答者:Hunts.C - 初学一级
动态SQL也可以啊 SELECT TOP(str(@top)) * FROM table 或用再个TOP完成分页,可以到BAIDU一下
9个月前   回答者:mmic.net.cn - 菜鸟二级
create procedure sel_getuser @top int as select top(@top) * from Table1
9个月前   回答者:暗香浮动 - 菜鸟二级
这两个其实效率是一样的,好的SQL语句还是少用TOP比较好
8个月前   回答者:Justin Shen - 菜鸟二级
评论
1个月前   virus :
没有了,就这两种
后者好一点,效率高
1个月前   virus :
sql2005可以使用top参数了

create procedure Proc_DiskEncryptRelation_GetList
@DiskAutoID int,
@TopNum int
as
begin

select top(@TopNum) * from DiskEncryptRelation where DiskID=@DiskAutoID order by BackupDate desc
end
go
   您需要登录以后才能回答!
 

我要提问

我的问题


快到期问题

> 问题排行榜

相关内容

相关链接