翻页的存储过程
CREATE PROC Turnpage
@qCols varchar(200), --需要查询的列
@qTables varchar(200), --需要查询的表 和条件
@iKey varchar (20), --标识字段
@oKey varchar(20), --排序字段
@pageSize int, --每页的行数
@pageNumber int --要显示的页码, 从0开始
AS
set nocount on
[color=#FFFFFF'][/color]
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