CREATE
PROC
sp_PageCount
@tbname sysname, -- 要分页显示的表名
@Where nvarchar ( 1000 ) = '' , -- 查询条件
@Count int OUTPUT -- 总页数
as
DECLARE @sql nvarchar ( 4000 )
SET @sql = N ' SELECT @Count=COUNT(*) '
+ N ' FROM ' + @tbname
+ N ' where ' + @Where
EXEC sp_executesql @sql ,N ' @Count int OUTPUT ' , @Count OUTPUT
GO
CREATE PROC sp_PageView
@tbname sysname, -- 要分页显示的表名
@PageCurrent int = 1 , -- 要显示的页码
@PageSize int = 10 , -- 每页的大小(记录数)
@FieldShow nvarchar ( 1000 ) = '' , -- 以逗号分隔的要显示的字段列表,如果不指定,则显示所有字段
@FieldOrder nvarchar ( 1000 ) = '' , -- 以逗号分隔的排序字段列表,可以指定在字段后面指定DESC/ASC用于指定排序顺序
@Where nvarchar ( 1000 ) = '' , -- 查询条件
@Id nvarchar ( 20 ) = ''
AS
declare @topN int
set @topN = ( @PageCurrent - 1 ) * @PageSize
exec (N ' select top ' + @PageSize + N '' + @FieldShow + N ' from ' + @tbname + N ' where ' + @Id + N ' not in(select top ' + @topN + N ' ' + @Id + N ' from
' + @tbname + N ' where ' + @Where + N ' ' + @FieldOrder + N ' ) ' + N ' and ' + @Where + N ' ' + @FieldOrder )
GO
@tbname sysname, -- 要分页显示的表名
@Where nvarchar ( 1000 ) = '' , -- 查询条件
@Count int OUTPUT -- 总页数
as
DECLARE @sql nvarchar ( 4000 )
SET @sql = N ' SELECT @Count=COUNT(*) '
+ N ' FROM ' + @tbname
+ N ' where ' + @Where
EXEC sp_executesql @sql ,N ' @Count int OUTPUT ' , @Count OUTPUT
GO
CREATE PROC sp_PageView
@tbname sysname, -- 要分页显示的表名
@PageCurrent int = 1 , -- 要显示的页码
@PageSize int = 10 , -- 每页的大小(记录数)
@FieldShow nvarchar ( 1000 ) = '' , -- 以逗号分隔的要显示的字段列表,如果不指定,则显示所有字段
@FieldOrder nvarchar ( 1000 ) = '' , -- 以逗号分隔的排序字段列表,可以指定在字段后面指定DESC/ASC用于指定排序顺序
@Where nvarchar ( 1000 ) = '' , -- 查询条件
@Id nvarchar ( 20 ) = ''
AS
declare @topN int
set @topN = ( @PageCurrent - 1 ) * @PageSize
exec (N ' select top ' + @PageSize + N '' + @FieldShow + N ' from ' + @tbname + N ' where ' + @Id + N ' not in(select top ' + @topN + N ' ' + @Id + N ' from
' + @tbname + N ' where ' + @Where + N ' ' + @FieldOrder + N ' ) ' + N ' and ' + @Where + N ' ' + @FieldOrder )
GO