SQL Server分页存储过程
来源:互联网 发布:linux 安装tar命令 编辑:程序博客网 时间:2024/05/22 13:55
CREATE proc [dbo].[USP_Web_Interface_Pagination]@TableList VARCHAR(3000)='*',--搜索表的字段,比如:’id,datatime,job‘,用逗号隔开@TableName VARCHAR(30), --查询的表名--@TableFrom VARCHAR(1000),--表后面跟着的在where前面的一些条件@SelectWhere VARCHAR(500)='',--搜索条件,这里不用写where,比如:job=’123‘and order='2'@SelectOrderId VARCHAR(20),--表主键字段名。比如:id@SelectOrder VARCHAR(500)='', --排序,可以使用多字段排序但主键字段必需在最前面.也可以不写,比如:order by creatTime asc@IntPageNo INT=1, --页号@IntPageSize INT=10 ,--每页显示数@RecordCount INT OUTPUT --总记录数(存储过程输出参数)AS BEGINDECLARE @TmpSelect NVARCHAR(600) --DECLARE @Tmp NVARCHAR(600) DECLARE @temp_select VARCHAR(2000) DECLARE @temp_from VARCHAR(2000)DECLARE @temp_where VARCHAR(2000)DECLARE @temp_in VARCHAR(2000) DECLARE @temp_end VARCHAR(1000) DECLARE @temp_T_sql NVARCHAR(MAX) SET NOCOUNT ON--关闭计数IF(@SelectWhere != '')BEGINSET @TmpSelect = 'select @RecordCount = count(*) from '+@TableName+' WHERE '+@SelectWhereENDELSEBEGINSET @TmpSelect = 'select @RecordCount = count(*) from '+@TableNameENDEXECUTE sp_executesql @TmpSelect, --执行上面的sql语句N'@RecordCount int OUTPUT' , --执行输出数据的sql语句,output出总记录数@RecordCount OUTPUTIF (@RecordCount = 0) --如果没有,则返回零return 0 /*判断页数是否正确*/IF (@IntPageNo - 1) * @IntPageSize > @RecordCount --页号大于总页数,返回错误return (-1)SET NOCOUNT OFF--打开计数IF @SelectWhere != '' BEGIN--SET @TmpSelect = 'select top '+str(@IntPageSize)+' '+@TableList+' from '+@TableName+' where '+@SelectOrderId+' not in(select top '+str((@IntPageNo-1)*@IntPageSize)+' '+@SelectOrderId+' from '+@TableName+' where '+@SelectWhere +' '+@SelectOrder+') and '+@SelectWhere +' '+@SelectOrderSET @Temp_Select = 'select top '+ Convert(VARCHAR(20),@IntPageSize) +' '+@TableList;SET @Temp_From = ' from '+@TableName;SET @temp_where = ' where '+@SelectOrderId;SET @Temp_In = ' not in(select top '+Convert(VARCHAR(20),(@IntPageNo-1)*@IntPageSize)+' '+@SelectOrderId+' from '+@TableName+' where '+@SelectWhere +' '+@SelectOrder+') ';SET @Temp_End = ' and '+@SelectWhere +' '+@SelectOrder;ENDELSEBEGIN--SET @TmpSelect = 'select top '+str(@IntPageSize)+' '+@TableList+' from '+@TableName+' where '+@SelectOrderId+' not in(select top '+str((@IntPageNo-1)*@IntPageSize)+' '+@SelectOrderId+' from '+@TableName+' '+@SelectOrder+') '+@SelectOrderSET @Temp_Select = 'select top '+Convert(VARCHAR(20),@IntPageSize)+' '+@TableList;SET @Temp_From = ' from '+@TableNameSET @temp_where = ' where '+@SelectOrderId;SET @Temp_In = ' not in(select top '+Convert(VARCHAR(20),(@IntPageNo-1)*@IntPageSize)+' '+@SelectOrderId+' from '+@TableName+' '+@SelectOrder+') ';SET @Temp_End = @SelectOrder;END--RETURN @Temp_Select + @Temp_From + ' ' +@TableFrom + @temp_where + @Temp_In + @Temp_End --EXECUTE sp_executesql @TmpSelectSET @temp_T_sql = @Temp_Select + @Temp_From + ' ' +@TableFrom + @temp_where + @Temp_In + @Temp_End --RETURN @temp_T_sql--Exec(@Temp_Select + @Temp_From + ' ' +@TableFrom + @temp_where + @Temp_In + @Temp_End )Exec SP_EXECUTESQL @temp_T_sqlRETURN(@@rowcount)END
0 0
- SQL Server 分页存储过程
- 分页存储过程(SQL Server)
- SQL Server 分页存储过程
- SQL Server 分页存储过程
- SQL Server 分页存储过程
- SQL Server 分页存储过程
- SQL SERVER 分页存储过程
- SQL Server 分页存储过程
- sql server分页存储过程
- SQL Server分页存储过程
- SQL Server分页存储过程
- sql server 分页存储过程
- sql server存储过程分页
- SQL server分页存储过程
- SQL server 分页存储过程
- Sql Server 分页存储过程
- Sql Server 分页存储过程
- SQL Server 分页存储过程
- CAN电平--隐性与显性
- C++简单的TCP/IP通信
- Git概念 及相关操作上传、合并等
- android google map
- Android GridView自适应Item高度
- SQL Server分页存储过程
- 测试Hadoop2.7.1
- App第三方登录微信遇到code以及无法弹出微信登录界面libs包不对等一系列问题解决
- mysql遍历字符串,按ASCII码拼接返回数字
- RxJava使用方法简析
- 移植u-boot学习笔记1-----实验及分析启动过程之概述
- H.264句法和语法总结(七)加权预测句法
- 前端工程师手册
- 51Nod1019 求逆序数(归并排序)