sql 2005 分页存储过程

    xiaoxiao2022-07-16  154

    set ANSI_NULLS ONset QUOTED_IDENTIFIER ONgo-- [SelectBase] 1,1,'Users','username=''test'''ALTER procedure [dbo].[SelectBase]@PageIndex                    int,@PageSize                    int,@TableName       nvarchar(max),@Where                     nvarchar(max)=''asDeclare @rowcount          intDeclare @intStart          intDeclare @intEnd         intDeclare @SQl nvarchar(max), @WhereR nvarchar(max), @OrderBy nvarchar(max)set @rowcount=0set nocount onif @Where<>''begin   set @Where=' and '+@Whereendif CHARINDEX('order by'@Where)>0begin     set @WhereR=substring(@Where1CHARINDEX('order by',@Where)-1)    --取得条件    set @OrderBy=substring(@WhereCHARINDEX('order by',@Where), Len(@Where))    --取得排序方式(order by 字段 方式)endelsebegin     set @WhereR=@Where     declare @PKName nvarchar(50)     if(len(@TableName)>50)     begin         Set @PKName='ID'     end     else     begin         select top 1 @PKName=[name] from syscolumns where id=object_id(@TableNameorder by colstat desc     end     set @OrderBy=' order by '+@PKName+' asc'endset @SQl='SELECT @rowcount=count(*) from '+cast(@TableName as nvarchar(3000))+' where 1=1 '+@WhereRexec sp_executeSql @SQl,N'@rowcount int output',@rowcount outputif @PageIndex=0 and @PageSize=0    --不进行分页,查询所有数据列表begin     set @SQl='SELECT * from '+cast(@TableName as nvarchar(3000))+' where 1=1 '+@Whereendelse    --进行分页查询数据列表begin     set @intStart=(@PageIndex-1)*@PageSize+1;     set @intEnd=@intStart+@PageSize-1     set @SQl='select * from(select *,ROW_NUMBER() OVER('+cast(@OrderBy as nvarchar)+') as row from '     set @SQl=@SQL+@TableName+' where 1=1 '+@WhereR+') as a where row between '+cast(@intStart as varchar)+' and '+cast(@intEnd as varchar)end--print @SQlexec sp_executeSql @SQl--select @rowcountreturn @rowcount-------------------------------------------- --print @SQl --exec [SelectBase] 1,8,'SpaceContent','UserInfoID=45'set nocount off 版权声明:本文原创发表于博客园,作者为路过秋天,原文链接:http://www.cnblogs.com/cyq1162/archive/2009/08/13/1545030.html 相关资源:SqlServer高效万能分页存储过程
    最新回复(0)