分页的存储过程
来源:互联网 发布:淘宝发布食用农产品 编辑:程序博客网 时间:2024/05/19 23:16
手写分页很麻烦,今天看了个分页的存储过程,觉得不错,自己又写了一下
--分页的存储过程
CREATE PROCEDURE paging
(
--表名
@tblName varchar(64),
--要查询的字段
@strGetFields varchar(256) = '',
--按那个字段排序
@fldName varchar(64)='',
--每页多少条记录
@PageSize int = 20,
--第几页
@PageIndex int = 1,
--排序方式0表示倒序,1表示顺序
@OrderType bit = 1,
--where条件
@strWhere varchar(256) = ''
)
AS
BEGIN
declare @strSQL varchar(1000)
declare @strTmp varchar(110)
declare @strOrder varchar(400)
SET NOCOUNT ON
if @OrderType != 0
begin
set @strTmp = '<(select min'
set @strOrder = ' order by [' + @fldName +'] desc'
end
else
begin
set @strTmp = '>(select max'
set @strOrder = ' order by [' + @fldName +'] asc'
end
if @PageIndex = 1
begin
if @strWhere != ''
set @strSQL = 'select top ' + str(@PageSize) +' '+@strGetFields+ ' from ' + @tblName + ' where ' + @strWhere + ' ' + @strOrder
else
set @strSQL = 'select top ' + str(@PageSize) +' '+@strGetFields+ ' from '+ @tblName + ' '+ @strOrder
end
else
begin
set @strSQL = 'select top ' + str(@PageSize) +' '+@strGetFields+ ' 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) +' '+@strGetFields+ ' from '
+ @tblName + ' where [' + @fldName + ']' + @strTmp + '(['
+ @fldName + ']) from (select top ' + str((@PageIndex-1)*@PageSize) + ' ['
+ @fldName + '] from ' + @tblName + ' where ' + @strWhere + ' '
+ @strOrder + ') as tblTmp) and ' + @strWhere + ' ' + @strOrder
end
EXEC (@strSQL)
if @@error=0 return 1
SET NOCOUNT OFF
END
GO
exec paging 'news','*','id',3,2,0,''
- 分页的存储过程
- 分页的存储过程
- 分页的存储过程
- 分页的存储过程
- 分页的存储过程
- 分页的存储过程
- 分页的存储过程
- 存储过程的分页!!
- 分页的存储过程
- 分页的存储过程
- 分页的存储过程
- 分页的存储过程
- 分页的存储过程
- 分页的存储过程
- 分页的存储过程
- 分页的存储过程
- 分页的存储过程
- 存储过程的分页
- 如果没有Page.IsPostBack
- 关于在vc6的project中引入vs2005生成的lib的总结
- Documentum几个常见的异常
- 必须掌握的八个【cmd 命令行】
- 表格背景(Background)图像CSS用法详解
- 分页的存储过程
- Hibernate简单实例
- httpcliet
- 终于发现AS3接口的一个很重要的作用了(甚至不能用“抽象类”替代的)!!
- 关于C#中验证的正则表达式
- 关于Hook (转)
- ehcache缓存配置说明
- 如何动态加载Javascript脚本
- 最好的移动无边框窗口的方法