En SQL Server 2005 o superior tienes la función ROW_NUMBER() que permite crear una columna calculada con números secuenciales por cada fila, por ejemplo:
Código:
create table clientes (
id int primary key,
nombre varchar,
apellido varchar
)
go
select * from
(
select
row_number() over (order by id) as num_fila,
id,
nombre,
apellido
from clientes
) t
where t.num_fila between 50 and 100
go
Pero debes asegurarte que la ordenación sobre la tabla ( sintaxis: over (order by columna) ) se haga sobre una clave única, de lo contrario, la condición
where t.num_fila between 50 and 100 podría devolver diferentes resultados con el paso del tiempo.
Saludos