CREATE PROCEDURE pageTest --Teste para virar a página
--Você precisa colocar o campo de classificação na primeira coluna
(
@FirstID nvarchar(20)=null, --O valor do campo de classificação do primeiro registro na página atual
@LastID nvarchar(20)=null, --O valor do campo de classificação do último registro na página atual
@isNext bit=null, --true 1: próxima página; false 0: página anterior;
@allCount saída int, --Retorna o número total de registros
@pageSize saída int, --retorna o número de registros em uma página
@CurPage int --Número da página (página) 0: primeira página; -1 última página.
)
COMO
se @CurPage=0
começar
--Número total estatístico de registros
selecione @allCount=count(ProductId) em Product_test
definir @pageSize=10
--Retorna os dados da primeira página
selecione os 10 primeiros
ID do produto,
NomeDoProduto,
Introdução
do pedido Product_test por ProductId
end
else if @CurPage=-1
selecione * de
(selecione os 10 principais ProductId,
NomeDoProduto,
Introdução
do pedido Product_test por ProductId desc) como aa
encomendar por ProductId
senão
começar
se @isNext=1
--virar para a próxima página
selecione os 10 principais ProductId,
NomeDoProduto,
Introdução
de Product_test onde ProductId > @LastID ordenar por ProductId
outro
--virar para a página anterior
selecione * de
(selecione os 10 principais ProductId,
NomeDoProduto,
Introdução
de Product_test onde ProductId < @FirstID pedido por ProductId desc) como bb pedido por ProductId
fim
Percorrer milhões de páginas de dados equivale a 100 dados!