Paginación en SQL Server 2008 R2

  Varios

Para poder realizar la paginación de manera correcta en los entornos Microsoft Windows para su producto Windows SQL Server 2008 R2.

La sintaxis es la siguiente.

SELECT
CONVERT(INT, ROW_NUMBER() OVER (ORDER BY ID) ) AS ROWNUM,
ID, 
DESCRIPCION,
FEC_ULT_ACT,
TOTAL = (select COUNT(*) from ERP_ARTICULOS)
FROM (
		SELECT
		        CONVERT(INT, ROW_NUMBER() OVER (ORDER BY ID) ) AS ROWNUM,
			ID, 
			DESCRIPCION,
			FEC_ULT_ACT,
TOTAL = (select COUNT(*) from ERP_ARTICULOS)
		FROM ERP_EMPRESAS ) AS EMPRESAS	
WHERE EMPRESAS.ROWNUM BETWEEN 1 AND 5

Esto nos devolverá:

IDD	ID	DESCRIPCION	        FEC_ULT_ACT
1	1	Octavio de la Fuente	2018-12-12 18:31:32.000
2	10	Claudio Bravo	        2018-09-07 11:39:10.000
3	1000	Responsable inscripto	2018-09-07 11:39:25.000
4	1001	Monotributista	        2012-06-27 15:15:07.000
5	1002	Maria Rosmira	        2018-12-12 20:52:23.000

Lo único que tenemos que hacer ahora para poder paginar desde el cliente o nuestra aplicación es usar el método SQLFilter:

WHERE EMPRESAS.ROWNUM BETWEEN DESDE AND HASTA

Y modificar los valores para [DESDE] y [HASTA]

También es válido y recomendado poder filtrar por fecha de última actualización.

WHERE 
EMPRESAS.ROWNUM BETWEEN 1 AND 50 AND 
FEC_ULT_ACT BETWEEN '2018-12-12 00:00' and '2018-12-12 23:59'

IMPORTANTE: Para poder usar esta solución en entornos Itris Software es necesario crear una clase modelizada tipo consulta.

Deja un comentario