假如我们要写一个存储过程,取表中前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
博客以Northwind库中的Orders表为例,介绍了写存储过程取表中前N条记录的两种方法,一是拼SQL,二是借用RowCount属性。两种方法效果相同,但第二种更灵活,知道的人较少。

被折叠的 条评论
为什么被折叠?



