假如我们要写一个存储过程,取表中前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