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.