[存储过程] 翻页的存储过程

发布时间:2010年01月27日      浏览次数:621 次
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
免责声明:本站相关技术文章信息部分来自网络,目的主要是传播更多信息,如果您认为本站的某些信息侵犯了您的版权,请与我们联系,我们会即时妥善的处理,谢谢合作!