分页之存储过程
分页的方法很多,不能说明哪个方法最好,那个方法最差,以事实情况而定,在此我推荐一种简单的方法
我用的是(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
这是一个。。公司分页的,有兴趣的看官,可以试着。。改写一下

浙公网安备 33010602011771号