Duplicar posible:
SQL Server - use a parameter to select the top X of the result set¿Puede pasar el número 'SUPERIOR' como parámetro a un procedimiento almacenado?
Mi consulta en mi procedimiento almacenado se ve algo como:
select top 9 from my_table;
me gustaría editar el procedimiento almacenado para producir de forma dinámica el límite de un parámetro, sin embargo, esto no parece estar funcionando:
ALTER PROCEDURE [dbo].[my_stored_procedure]
@n INT(2)
AS
BEGIN
SELECT TOP @n from my_table;
¿Es esto factible? O tengo que hacer algo como:
@n int(2),
@sql varchar(30)
@sql = 'select top ' + @n '* from my table';
exec(@sql);
Gracias.
lo que si se intenta SELECT TOP (@ n) '? – Lamak
¡Pruébalo! Hubiera sido más rápido ejecutar la consulta que publicarla aquí. – JNK
http://social.msdn.microsoft.com/search/en-us?query=top&x=0&y=0 –