sql server中用存储过程实现一下数据视图的分页函数,假设每页显示10行。
ID Name
2 Bod
1 Barry
9 Tina

解决方案 »

  1.   

    create function F_page(@page int)
    returns @tb table(id int,name varchar(20))
    as
    begin
    insert into @tb
    select id,name
    from (
    select id,name,ceiling(ROW_NUMBER() over(order by id)/10.0)  as page from Tablename) as a 
    where page=@page 
    return;
    end
      

  2.   

    SQL Server 2000通用分页存储过程sqlserver2005高效存储过程分页SQL SERVER 2012分页示例SQL SERVER 2000是用top 实现的分页。
    SQL SERVER 2005/2008是用row_number()实现的分页。
    SQL SERVER 2012 是用 OFFSET/FETCH NEXT实现的分页。
      

  3.   

    create PROCEDURE getPersonInfo
    -- Add the parameters for the stored procedure here
    (
    @currentpage int
    )AS
    BEGIN SET NOCOUNT ON; SELECT TOP  10 * FROM PersonInfo WHERE id> ANY (select TOP (10*(@currentPage-1)) id FROM PersonInfo ORDER BY id)
    END
      

  4.   

    --执行
    select * from F_page(1)