Hola, no he trabajado nunca con SQL Server, pero puedes probar con la primera select ha hacer algo así:
Código SQL
[-]select TOP 50 from tabla .... -- y las condiciones de la select
Eso te devolverá los 50 primeros registro de la consulta.
Respecto a tú segunda pregunta, no tengo respuesta, a bote pronto te diria que no hay otra manera, pero pueda que haya otra solucion y que alguien te la de.
Saludos