存储过程问题。大家进来

来源:百度知道 编辑:UC知道 时间:2024/05/16 12:46:37
各位大哥们帮我看看。这是个分页的存储过程,为什么我点第二页就没有数据了
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

ALTER procedure [dbo].[Up_CouPage]
@tbName varchar(255), --表名
@tbFields varchar(1000), --返回字段
@OrderField varchar(255), --排序的字段名
@PageSize int, --页尺寸
@PageIndex int, --页码
@OrderType bit, --排序类型,1是升序,0是降序
@strWhere varchar(1500) --查询条件
--@Total int output --返回总记录数
as
declare @strSql varchar(5000) --主语句
declare @strOrder varchar(200) --排序
declare @strSqlCount nvarchar(500)--查询记录总数主语句
declare @strtemp varchar(50) --排序附加语句
--------------排序-----------------1是降序,0未升序
if @OrderType =0
begin
set @strtemp= '>(select max('
set @strOrder='order by ' + @OrderField +'asc'
end
else
begin
set @strtemp= '<(select min('
set @strOrder='order by '+ @OrderF

if @strWhere !=''
begin
set @strSql='Select top ' +str(@PageSize) + ' ' + @tbFields+' from ' + @tbName + ' where '+@strWhere+' and '--这里加上@strWhere
+@OrderField +' '+ @strtemp+ ' ' +@OrderField+ ') from (select top'
+str((@PageIndex-1)*@PageSize) + ' '+@OrderField +' from '+@tbName+' where '+ @strWhere+ ' '+ @strOrder +') as tb)'+ @strOrder

2005用row_number处理分页
2000可用以下分页
/*--用存储过程实现的分页程序

显示指定表、视图、查询结果的第X页
对于表中主键或标识列的情况,直接从原表取数查询,其它情况使用临时表的方法
如果视图或查询结果中有主键,不推荐此方法

--邹建 2003.09(引用请保留此信息)--*/

/*--调用示例
exec p_show '地区资料'

exec p_show '地区资料',5,3,'地区编号,地区名称,助记码','地区编号'
--*/

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_show]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure