宝玉

专注于web开发技术
随笔 - 114, 评论 - 1517 , 引用 - 583

获取数据库中前N条记录

假如我们要写一个存储过程,取表中前N条记录,其中N为参数,以Northwind库中的Orders表为例,有两种方法:

第一种是拼SQL

CREATE PROCEDURE GetTopNOrders
(
 @RowsToReturn int
)
AS
declare @sql varchar(8000)

set @sql='select top '+cast(@RowsToReturn as varchar)+' * from orders'

exec (@sql)

第二种是借用RowCount属性

CREATE PROCEDURE GetTopNOrders
(
 @RowsToReturn int
)
AS
SET ROWCOUNT @RowsToReturn
SELECT * FROM Orders order by orderid

对于这个例子不管哪种效果都是一样的,但是第二种应该更灵活一点,只是知道的人比较少罢了!

GetTopNOrders 20

希望能对大家有所帮助:)

发表于 2004年12月5日 21:27

评论

# re: 获取数据库中前N条记录

弱弱地问下:
为什么不直接这样:select top @RowsToReturn * from orders
?
2005-2-5 5:54 | ny

# re:获取数据库中前N条记录

^_~,pretty good!csharpsseeoo
2005-5-16 15:13 | 面团成型机

# re:获取数据库中前N条记录

获取数据库中前N条记录ooeess
2005-6-14 5:40 | 测汞

# re:获取数据库中前N条记录

获取数据库中前N条记录ooeess
2005-7-23 13:23 | 红外热像仪

Post Comment

主题  
姓名  
主页
校验码  
内容   
京ICP备 05050892号