if exists(select * from sysobjects where name='pagedQueryProc')
begin
drop proc pagedQueryProc
print 'exists'
end
else
print 'not exists'
go
create proc pagedQueryProc
@pageIndex int,
@pageSize int ,
@tableName varchar(30)
as
declare @strSql nvarchar(3000);
declare @columnsName varchar(30);
declare @totalCount int;
declare @totalPage int;
declare @strCountSql nvarchar(1000);
select top 1 @columnsName=columns.name from syscolumns as columns,sysobjects as objects where columns.id=objects.id and objects.name=@tableName;
set @strCountSql='select @totalCount=count(1) from '+@tableName;
exec sp_executesql @strCountSql,N'@totalCount int output',@totalCount OUTPUT;
set @totalPage =@totalCount/@pageSize;
if (@totalCount%@pageSize)<>0
begin
set @totalPage=@totalPage+1;
end
if @pageIndex>1 and @pageIndex<=@totalPage
begin
set @strSql =' select top '+str(@pageSize) +' * from '+ @tableName+' where '+@columnsName+' > (select max('+@columnsName+') from '+@tableName+' where '+@columnsName+' in(select top ('+str(@pageSize*(@pageIndex-1))+') '+@columnsName+' from '+@tableName+' order by '+@columnsName+' asc)) order by '+@columnsName+' asc';
end
else
begin
set @strSql =' select top '+str(@pageSize) +' * from '+ @tableName+' order by '+@columnsName+' asc'
end
exec sp_executesql @strSql
go
exec pagedQueryProc 1,20,'card' ---你只需要调用就可以了 动态分页 传入三个参数 1.分页当前页数
-- 2.一页显示记录数
--3.需查询的表名
--是用了max函数进行分页
分享到:
相关推荐
Oracle通用数据库存储过程代码--高效分页存储过程,只需简单的修改即可使用,方便易懂!
SQL Server 2000下的通用分页存储过程.sql
适用于单一主键或存在唯一值列的表或视图,高效通用分页存储过程(双向检索)
一个通用的非常简单实用的分页存储过程,可以减轻数据库查询的压力,程序员快速开发出现高效的查询代码
自己写的,不怎么好。 呵呵,贴出来大家参考参考!
几乎每一个WEB应用都会用到分页,因此,将其做得通用高效就变得非常重要了,根据自己的想法用存储过程做了一个分页的存储过程,与大家分享,希望能够通过讨论得到更好的解决方案。 --之所以用存储过程,是因为以后...
ORACLE和mssql 高效的分页存储过程,均通用,直接调用即可
@tblName nvarchar(4000), ----要显示的表或多个表的连接 @fldName nvarchar(4000) = '*', ----要显示的字段列表 @pageSize int, ----每页显示的记录个数 @page int, ----要显示那一页的记录 @pageCount int = 1 ...
利用存储过程优化分页,每次只读出每页要显示的数据,效率很高
每次只提取指定条数记录,原理同常见分页存储过程一样,可适用于access,且MSSQL2k之后分页存储过程和构造sql语句的效率相差无几,完全可用该分页类代替存储过程等。 代码附带使用例子。
精典,绝对超值,高效分页通用存储过程,经测试过,好用。效率高
几乎每一个WEB应用都会用到分页,因此,将其做得通用高效就变得非常重要了,根据自己的想法用存储过程做了一个分页的存储过程,与大家分享,希望能够通过讨论得到更好的解决方案。 之所以用存储过程,是因为以后需要...
通用高效分页存储过程实现,欢迎高手指点 含数据库脚本,经测试通过
通常大家都会认为存储过程可以避免sql注入的漏洞,这适用于一般的存储过程,而对于通用分页存储过程是不适合的,请看下面的代码和分析! 一般的通用的分页存储过程代码如下: 代码如下: CREATE PROCEDURE ...
经过测试,确实是效率最高的分页 1.使用游标分页。 2.使用top分页。 3.使用ROW_NMUBER()分页
ASP.NET数据分页通用高效方法,存储过程分页
前些时间看了玉开兄的“如此高效通用的分页存储过程是带有sql注入漏洞的”这篇文章,才突然想起某个项目也是使用了累似的通用分页存储过程。
c) 标准通用分页查询存储过程设计,为业务系统开发过程中的分页查询提升效率。 d) 灵活稳定的编码分配设计,只需要通过配置即可快速实现可满足各种要求的唯一编码。 e) 健全的汉字拼音管理,收录了常用的3万多汉字的...
c) 标准通用分页查询存储过程设计,为业务系统开发过程中的分页查询提升效率。 d) 灵活稳定的编码分配设计,只需要通过配置即可快速实现可满足各种要求的唯一编码。 e) 健全的汉字拼音管理,收录了常用的3万多汉字的...