Sql server TOP N作为存储的过程参数而不使用动态SQL?

Sql server TOP N作为存储的过程参数而不使用动态SQL?,sql-server,tsql,stored-procedures,Sql Server,Tsql,Stored Procedures,我有一个简单的存储过程,它返回最差的20个百分比。SP的外观如下所示: Create procedure dbo.usp_GetAwfulSalesmen as select top 20 AvgSales, Name from Sales order by AvgSales ASC 但假设我想退回前20名以外的东西 有没有一种方法可以将top N发送到存储过程,使其成为一个参数而不是一个固定值 我不想使用动态sql 谢谢。将INT参数添加到存储过程(即@Top) 这很简单。谢谢。@rbha

我有一个简单的存储过程,它返回最差的20个百分比。SP的外观如下所示:

Create procedure dbo.usp_GetAwfulSalesmen
as

select top 20 AvgSales, Name from Sales order by AvgSales ASC
但假设我想退回前20名以外的东西

有没有一种方法可以将top N发送到存储过程,使其成为一个参数而不是一个固定值

我不想使用动态sql


谢谢。

将INT参数添加到存储过程(即@Top)


这很简单。谢谢。@rbhattup有些东西是。享受它们。他们很少
Select Top (@Top) AvgSales, Name 
 From Sales 
 Order by AvgSales ASC