Inicio > Música > Paginar registros en SQL Server 2005

Paginar registros en SQL Server 2005

Jueves, 1 de febrero de 2007 Dejar un comentario Ir a comentarios

Este es un Stored Procedure en SQL Server 2005 que permite hacer la paginación de registros de una tabla en particular, el truco no es mío, no me gusta quedarme con créditos ajenos, pero no recuerdo la dirección de donde lo conseguí, en todo caso, cabe aclarar que le hice algún ligero cambio para que sea un poco mas entendible. Ahí les va el código (obviamente se usa página de ejemplo, la personalización les corresponde a ustedes):

CREATE PROCEDURE dbo.uspPaginarUsuarios
@PageSize int,
@PageNumber int
AS
BEGIN

    SELECT idUsuario, nombreUsuario
    FROM (
        SELECT idUsuario, nombreUsuario,
        ROW_NUMBER() OVER (ORDER BY idUsuario) AS RowNumber
        FROM Usuarios
    ) AS miTabla
    WHERE RowNumber BETWEEN (@PageSize * @PageNumber) + 1 AND @PageSize * (@PageNumber + 1)
END

Una página es un conjunto de n registros que se muestran de un conjunto mayor. La idea es dividir la cantidad total de registros entre la cantidad de registros que se desea mostrar por vez. Cada conjunto dividido se conoce como página.

Aclarar solamente que la primera página será la número 0, y que si escriben un número de página mayor al de las que existen el SP devolverá 0 registros.

Saludos.

Categories: Música
 

  1. Claudio
    Domingo, 17 de agosto de 2008 a las 23:07 | #1

    wow, bello código

  2. Andrés
    Miércoles, 21 de enero de 2009 a las 13:54 | #2

    Gracias, me ha servido de mucho este artículo.

  3. Juan Pablo
    Jueves, 7 de enero de 2010 a las 15:26 | #3

    Funciona excelente.

  4. Miércoles, 2 de junio de 2010 a las 23:32 | #4

    Qué maravilla, ehhhh ;-)

  5. fERNANDO
    Jueves, 25 de noviembre de 2010 a las 16:53 | #5

    No funciona para ciertos casos.
    Probad por ejemplo
    @PageSize =1
    @PageNumber=4

    Salen resultados en una tabla con 6 registros por ejemplo, y no debe salir nada.

  6. andres
    Viernes, 14 de enero de 2011 a las 17:11 | #6
  1. Sin trackbacks aún.