WEB开发网
开发学院数据库MSSQL Server 翻页的存储过程 阅读

翻页的存储过程

 2007-11-11 04:45:39 来源:WEB开发网   
核心提示:CREATE PROC Turnpage @qCols varchar(200), --需要查询的列 @qTables varchar(200), --需要查询的表 和条件 @iKey varchar (20), --标识字段 @oKey varchar(20), --排序字段 @pageSize in

CREATE PROC Turnpage
   @qCols varchar(200),         --需要查询的列
   @qTables     varchar(200),    --需要查询的表 和条件
   @iKey     varchar (20),    --标识字段
   @oKey     varchar(20),     --排序字段
   @pageSize     int,         --每页的行数
   @pageNumber    int          --要显示的页码, 从0开始
AS
set nocount on
BEGIN
   DECLARE @sqlText AS varchar(1000)
   DECLARE @sqlTable AS varchar(1000)
   SET @sqlTable = 'SELECT TOP ' + CAST((@pageNumber + 1) * @pageSize AS varchar(30)) + ' ' + @qCols +' from '+ @qTables + ' order by '+@oKey+ ' desc'
   SET @sqlText =
     'SELECT TOP ' + CAST(@pageSize AS varchar(30)) + ' * ' +
     'FROM (' + @sqlTable + ') AS tableA ' +
     'WHERE ' + @iKey + ' NOT IN(SELECT TOP ' +
     CAST(@pageNumber * @pageSize AS varchar(30)) + ' ' + @iKey +
     ' FROM (' + @sqlTable + ') AS tableB)'
  EXEC (@sqlText)
 --print(@sqltext)
END
GO

Tags:存储 过程

编辑录入:coldstar [复制链接] [打 印]
赞助商链接