分页之存储过程

分页的方法很多,不能说明哪个方法最好,那个方法最差,以事实情况而定,在此我推荐一种简单的方法
我用的是(SQL 2005)
原码:
               set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

 

 

 

 

 

ALTER PROCEDURE [dbo].[compgetcompany]
 -- Add the parameters for the stored procedure here
 @DescriptionLength INT ,   ----定义参数:描述长度
    @PageNumber INT,            --------页码
    @companysPerPage INT ,       ------每页公司数
    @HowManyCompanys INT OUTPUT   --------公司总数
   
AS
BEGIN

 -- SET NOCOUNT ON added to prevent extra result sets from
 -- interfering with SELECT statements.
 SET NOCOUNT ON;
 DECLARE @companys TABLE
 (
    RowNumber INT,
    u_name nvarchar(20),
    corpname nvarchar(100),
    corpmode nvarchar(20),
    bizaddr nvarchar(100),
    viewhits  int ,
    mainproduct nvarchar(200),
   tel nvarchar(30),
    fax nvarchar(15),
     Des  nvarchar(600)
   
  )
 INSERT INTO @companys
  SELECT ROW_NUMBER() OVER (ORDER BY company.corpID),
        u_name,corpname,corpmode,bizaddr,viewhits,mainproduct,tel,fax,
          SUBSTRING(DES ,1,@DescriptionLength)+'......' as Des
         from company
   select @HowManyCompanys=count(corpname) from @companys
   select u_name,corpname,corpmode,bizaddr,viewhits,mainproduct,tel,fax,des
      from @companys
    where RowNumber > (@PageNumber -1)* @companysPerPage
         and RowNumber <= @PageNumber * @companysPerPage
 


   
END

 

 

 这是一个。。公司分页的,有兴趣的看官,可以试着。。改写一下

 

posted @ 2007-01-02 15:40  上海-天浩  阅读(139)  评论(0)    收藏  举报

Living in ShangHai

Copyright © 2008 天浩阁 Corporation, All Rights Reserved