Que tal amigos lectores,
Desde la versión SQL Server 2005 se agregó la función ROW_NUMBER(), para obtener una paginación y así simplificarse cuando tenemos proyectos y queremos una paginación los mas rápido, confiable y seguro.
Veamos un ejemplo
Creamos un procedimiento almacenado.
CREATE PROCEDURE sp_getRegistrosClientes
(
@pageSize int , -- tamaño de registro de la página
@pageNum int -- número de página de la paginación
)
AS
BEGIN
SELECT
codigo
, nombres
, edad
, pais
FROM
(
SELECT
,codigo
, nombres
, edad
, pais
,ROW_NUMBER() OVER (ORDER BY codigo DESC) ROWNUMBER -- nos enumera y lo ordenas por el codigo para el paginado
FROM Clientes
) AS TableClientes
WHERE
ROWNUMBER BETWEEN (@pageSize * @pageNum + 1 )
AND (@pageSize * (@pageNum + 1) ) -- Tenemos que calcular para que nos muestre el numero de pagina y el tamaño de registros a mostrar
END
Ahora veamos si queremos que nos devuelva los registro de 10 en 10 y que muestre la página número 7, con simplemente llamando al procedimiento almacenado podemos hacerlos y agregando los parámetros.
Veamos un ejemplo
-- tener en cuenta que la primera pagina empieza x 0
DECLARE @registroPagina int -- numero de registro a mostrar
DECLARE @numPagina int -- el numero de pagina que queremos mostrar
SET @registroPagina = 10 -- indicamos que la paginación sera de 10 en 10 los registro
SET @numPagina = 7 -- indicamos que me muestre la página número 6
-- llamamos al Store Procedure
execute sp_getRegistrosClientes @registroPagina, @numPagina
Bueno vimos que es muy fácil hacer una paginación gracias a la función ROW_NUMER en SQL Server.
nota
Agregue un comentario