Sql server row_number between
Hola!
Estoy haciendo un procedimiento de paginación en sql server.
El problema que tengo es que al intentar meter la select en una variable me da error en los números del between. ¿Me podría ayudar?
Este es mi código:
CREATE PROCEDURE PaginaX @tamPag integer, @numPag integer, @campoOrdenacion varchar(20) AS declare @estado varchar(50); declare @consulta varchar(500); declare @num1 varchar; set @num1 = convert(varchar, @tamPag * @numPag + 1); declare @num2 varchar; set @num2 = convert(varchar, @tamPag * (@numPag + 1)); set @consulta = 'SELECT * FROM ( SELECT *, ROW_NUMBER() OVER (ORDER BY '+@campoOrdenacion+' desc) AS numlinea FROM CATALOGO ) AS miunidad; WHERE numlinea BETWEEN '+@num1+' AND '+@num2; exec @consulta; GO exec PaginaX 10, 1, 'num';
El error que me dice es este:
Mens 203, Nivel 16, Estado 2, Procedimiento PaginaX, Línea 36 El nombre 'SELECT * FROM ( SELECT *, ROW_NUMBER() OVER (ORDER BY num desc) AS numlinea FROM CATALOGO ) AS miunidad; WHERE numlinea BETWEEN 1 AND 2' no es un identificador válido.
Gracias, un saludo.
Espero respuestas.