I SQL Server 2005 och senare kan du faktiskt parametrisera toppkommandot.
Koden nedan är från MSDN
USE AdventureWorks;
GO
DECLARE @p AS int;
SELECT @p=10
SELECT TOP(@p)*
FROM HumanResources.Employee;
GO
I tidigare versioner av SQL Server måste du antingen använda rowcount eller dynamisk sql.