sql >> Base de Datos >  >> RDS >> Sqlserver

¿Cuál es la mejor manera de obtener registros por lotes de SQL Server?

Si no puede usar OFFSET-FETCH en SQL Server 2012 y suponiendo que la tabla tiene una clave principal o columna(s) que le permiten identificar una fila de manera única, llamémosla UniqueKey , a partir de 2005 podría usar ROW_NUMBER así...

SELECT UniqueKey, col2, col3 
FROM 
(
  SELECT UniqueKey, col2, col3, ROW_NUMBER() OVER (ORDER BY UniqueKey) AS RowNum 
  FROM YourTable
) sub
WHERE sub.RowNum BETWEEN @startRow AND @endRow