存储过程万能分页

create proc [dbo].[p_paging]
@tableName varchar(8000), --表名、视图名
@indexCol varchar(50) = ‘id‘, --标识列名(如:比如主键、标识,推荐使用索引列)
@pageSize int = 10, --页面大小
@pageIndex int = 0, --当前页
@orderCol varchar(100) = ‘id desc‘,--排序 (如:id)
@where varchar(max) = ‘‘, --条件
@columns varchar(500) = ‘*‘ --要显示的列
as
declare @sql varchar(max)
declare @sql2 varchar(max)
declare @where2 varchar(max)

if @where <> ‘‘
begin
select @where2 = ‘ And ‘ + @where
select @where = ‘ Where ‘ + @where
end
else
select @where2 = ‘‘

select @sql = ‘Select Top ‘ + Convert(varchar(10),@pageSize) + ‘ ‘ + @columns + ‘ From ‘ + @tableName
select @sql2 = @sql + @where
select @sql = @sql + ‘ Where ‘ + ‘(‘ + @indexCol + ‘ Not In (Select Top ‘ + Convert(varchar(10), @pageSize * @pageIndex) + ‘ ‘ + @indexCol + ‘ From ‘ + @tableName + @where + ‘ Order by ‘+ @orderCol +‘))‘
select @sql = @sql + @where2
select @sql = @sql + ‘ Order by ‘ + @orderCol
--获取数据集
exec (@sql)
PRINT @sql
select @sql2 = Replace(@sql2,‘Top ‘ + Convert(varchar(10), @pageSize) + ‘ ‘ + @columns, ‘count(1)‘)
--获取总数据条数
exec(@sql2)

create proc up_GetBusInfo
as
select * from GetBusInfo

exec [dbo].[p_paging] SLDInfo,‘ID‘,3,0,‘ID desc‘,‘‘,‘*‘

原文地址:https://www.cnblogs.com/xiaoandong/p/9381351.html

时间: 2025-01-04 10:24:19

存储过程万能分页的相关文章

分页及万能分页

create database 万能分页 use 万能分页 create table student --创建表格 ( code int primary key identity(1,1) not null, --列 name varchar(50)not null, --列 sex varchar(50)not null, --列 age int not null, --列 [weight] int not null, --列 hight int not null, --列 idno int

调用存储过程进行分页实例

我在这使用SQL server数据库和我已有的数据库中的表.表名: HKSJ_Main 1.创建存储过程 --该分页的原理 越过多少条,去多少条 create proc P_page --声明参数@size int , --一页取几条@pageindex int,--取第几页@total int out --返回总条数as beginselect top(@size)* from dbo.HKSJ_Main as B where B.ID not in ( select top((@pagein

创建万能分页

--创建万能分页 alter proc wannengfenye11 @nowye int, @numbers int, @tablename varchar(50), @zhujian varchar(50) as 必须要用字符串连接起来,不然系统识别不出@tablenameexec ('select top('+@numbers+') *from'+@tablename+'where'+@zhujian+'not in (select top (('+@nowye+'-1)*'+@numbe

Sql万能分页代码

go  ----万能分页代码create procedure [dbo].[sp_datapager] @pagesize int,--每一页的大小 @pageindex int,--页码数 @tablename varchar(Max),--表的名称 @keycolumn varchar(20),---主键id @columns varchar(200),--要查询出列的名称 @where varchar(200),---查询条件 @orderby varchar(100),---排序方式 @

万能分页存储过程

CREATE proc [dbo].[p_paging]@tableName varchar(8000), --表名.视图名@indexCol varchar(50) = 'id', --标识列名(如:比如主键.标识,推荐使用索引列)@pageSize int = 10, --页面大小@pageIndex int = 1, --当前页@orderCol varchar(100) = 'id desc',--排序 (如:id)@where varchar(max) = '', --条件@colum

java连接oracle数据库调用存储过程实现分页查询(emp为例)

第一步:建一个含游标类型的包 sql>create or replace package testPackage as type test_cursor is ref cursor;    --定义名为test_cursor 的游标 end testPackage; 第二步:编写分页的存储过程 sql>create or replace procedure fenYe( tableName in varchar2,--表名 pageSize in number,--每页显示的记录数 pageN

基于Jquery+Ajax+Json+存储过程 高效分页

1 CREATE PROCEDURE [dbo].[PAGINATION] 2 @FEILDS VARCHAR(1000),--要显示的字段 3 @PAGE_INDEX INT,--当前页码 4 @PAGE_SIZE INT,--页面大小 5 @ORDERTYPE BIT,--当为0时 则为 desc 当为1 时 asc 6 @ANDWHERE VARCHAR(1000)='',--where语句 不用加where 7 @ORDERFEILD VARCHAR(100), --排序的字段 8 @T

MyBatis之四:调用存储过程含分页、输入输出参数

在前面分别讲解了通过mybatis执行简单的增删改,多表联合查询,那么自然不能缺少存储过程调用,而且还带分页功能. 注意:表结构参见上篇讲解联合查询的表. 一.查询某班级以及该班级下面所有学生的记录 上面这个查询可以用sql语句表示为: select c.class_id,c.class_name,s.s_id,s.s_name from Class c left join ClassStudent cs on c.class_id = cs.class_id left join Student

c#+oracle存储过程实现分页

1.在oracle的sqlplus或其他工具中运行一下pl/sql块建立存储过程 --------------------------------------------------------------分页存储过程--------------------------------------------------------------创建包create or replace package testpackage astype test_cursor is ref cursor;end t