分页存储过程
来源:互联网 发布:centos7.2搭建php环境 编辑:程序博客网 时间:2024/06/03 20:30
CREATE PROCEDURE YdWeb_GetRecordByPage
@tblName varchar(255), -- 表名
@fldName varchar(255), -- 主键字段名
@PageSize int = 3, -- 页尺寸
@PageIndex int = 1, -- 页码
@IsReCount bit = 0, -- 返回记录总数, 非 0 值则返回
@OrderType bit = 0, -- 设置排序类型, 非 0 值则降序
@strWhere varchar(1000) = '', -- 查询条件 (注意: 不要加 where)
@strOrderBy varchar(50) = '' -- 排序条件
AS
declare @strSQL varchar(6000) -- 主语句
declare @strTmp varchar(2000) -- 临时变量
declare @strOrder varchar(400) -- 排序类型
if @IsReCount != 0
begin
if @strWhere != ''
begin
set @strSQL = 'select count(*) as Total from [' + @tblName + ']'+' where ' + @strWhere
end
else
begin
set @strSQL = 'select count(*) as Total from [' + @tblName + ']'
end
end
else
begin
set @strTmp = 'not in(select '
if @OrderType != 0
begin
if @strOrderBy is null or @strOrderBy=''
set @strOrder = ' order by '+'[' + @fldName +'] desc'
else
set @strOrder = ' order by '+ @strOrderBy +' desc'
end
else
begin
if @strOrderBy is null or @strOrderBy=''
set @strOrder = ' order by '+'[' + @fldName +'] asc'
else
set @strOrder = ' order by '+ @strOrderBy +' asc'
end
set @strSQL = 'select top ' + str(@PageSize) + ' * from ['
+ @tblName + '] where [' + @fldName + ']' + @strTmp + '(['
+ @fldName + ']) from (select top ' + str((@PageIndex-1)*@PageSize) + ' ['
+ @fldName + '] from [' + @tblName + ']' + @strOrder + ') as tblTmp)'
+ @strOrder
if @strWhere != ''
set @strSQL = 'select top ' + str(@PageSize) + ' * from ['
+ @tblName + '] where [' + @fldName + ']' + @strTmp + '(['
+ @fldName + ']) from (select top ' + str((@PageIndex-1)*@PageSize) + ' ['
+ @fldName + '] from [' + @tblName + '] where ' + @strWhere + ' '
+ @strOrder + ') as tblTmp) and ' + @strWhere + ' ' + @strOrder
if @PageIndex = 1
begin
set @strTmp =''
if @strWhere != ''
set @strTmp = ' where ' + @strWhere
set @strSQL = 'select top ' + str(@PageSize) + ' * from ['
+ @tblName + ']' + @strTmp + ' ' + @strOrder
end
end
exec (@strSQL)
GO
@tblName varchar(255), -- 表名
@fldName varchar(255), -- 主键字段名
@PageSize int = 3, -- 页尺寸
@PageIndex int = 1, -- 页码
@IsReCount bit = 0, -- 返回记录总数, 非 0 值则返回
@OrderType bit = 0, -- 设置排序类型, 非 0 值则降序
@strWhere varchar(1000) = '', -- 查询条件 (注意: 不要加 where)
@strOrderBy varchar(50) = '' -- 排序条件
AS
declare @strSQL varchar(6000) -- 主语句
declare @strTmp varchar(2000) -- 临时变量
declare @strOrder varchar(400) -- 排序类型
if @IsReCount != 0
begin
if @strWhere != ''
begin
set @strSQL = 'select count(*) as Total from [' + @tblName + ']'+' where ' + @strWhere
end
else
begin
set @strSQL = 'select count(*) as Total from [' + @tblName + ']'
end
end
else
begin
set @strTmp = 'not in(select '
if @OrderType != 0
begin
if @strOrderBy is null or @strOrderBy=''
set @strOrder = ' order by '+'[' + @fldName +'] desc'
else
set @strOrder = ' order by '+ @strOrderBy +' desc'
end
else
begin
if @strOrderBy is null or @strOrderBy=''
set @strOrder = ' order by '+'[' + @fldName +'] asc'
else
set @strOrder = ' order by '+ @strOrderBy +' asc'
end
set @strSQL = 'select top ' + str(@PageSize) + ' * from ['
+ @tblName + '] where [' + @fldName + ']' + @strTmp + '(['
+ @fldName + ']) from (select top ' + str((@PageIndex-1)*@PageSize) + ' ['
+ @fldName + '] from [' + @tblName + ']' + @strOrder + ') as tblTmp)'
+ @strOrder
if @strWhere != ''
set @strSQL = 'select top ' + str(@PageSize) + ' * from ['
+ @tblName + '] where [' + @fldName + ']' + @strTmp + '(['
+ @fldName + ']) from (select top ' + str((@PageIndex-1)*@PageSize) + ' ['
+ @fldName + '] from [' + @tblName + '] where ' + @strWhere + ' '
+ @strOrder + ') as tblTmp) and ' + @strWhere + ' ' + @strOrder
if @PageIndex = 1
begin
set @strTmp =''
if @strWhere != ''
set @strTmp = ' where ' + @strWhere
set @strSQL = 'select top ' + str(@PageSize) + ' * from ['
+ @tblName + ']' + @strTmp + ' ' + @strOrder
end
end
exec (@strSQL)
GO
- orcale分页 存储过程分页
- 一个分页存储过程
- 一个分页存储过程
- 存储过程分页代码
- 分页存储过程
- 数据库分页存储过程
- 分页存储过程
- 一个分页存储过程
- 分页 SQLServer存储过程
- 分页 SQLServer存储过程
- 存储过程分页
- SqlServer分页存储过程
- 分页的存储过程
- 通用分页存储过程
- sql 存储过程分页
- 分页存储过程
- 分页存储过程2
- 分页的存储过程
- 首遇ORA-00600: internal error code, arguments: [evapth : unexpected evaluation], [], [], [], [], [], [
- HttpWatch工具简介及使用技巧
- 派生和继承
- 如何减小NK大小&&WinCE的快速启动
- marquee属性 marquee参数
- 分页存储过程
- 用axis2+Tomcat5.5+Eclipse3.2部署和访问Web服务
- 2012.4.7腾讯实习生笔试题 附加题1
- 在公司的头两年 C/C++程序员成长之路
- Facebook收购Instagram原因何在?
- css兼容IE8 及最新IE8 css hack
- 正则实例
- Ubunt Server 12.04 LTS beta2新特性及已知问题清单
- Jni中C++和Java的参数传递