All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
asp.net,水晶报表
ASP.NET从零起步设计网站全过程(7)_[Asp.Net教程]
用户体验:JS实现仿新浪信息提示效果_JavaScript技术_编程技术
ajax+php无刷新二级联动下拉菜单
PHP,PEAR简介_php资料_编程技术
C#中常用的集合类型
GridView,实现服务器端和客户端全选的两种方法_[Asp.Net教程]
SQL通用防注入程序带来的攻击及防范_[SQL,Server教程]
asp.net2.0服务器控件之RadioButton控件
ASP.NET数据库编程之处理文件访问许可_[Asp.Net教程]
Reading number is top 10 pictures
A man's favorite things2
这才是真正的人体艺术2
浴室里的美女
西班牙山村小景5
Discharge accidentally Actresses by the breast2
西方气质的东方美女2
奇趣的世界记录2
宝贝系列
30 beautiful school beauty6
Sora aoi in China4
Download software ranking
XML+Web+Service开发教程
Unix video tutorial11
网络管理员第三版
jBuilder2006
Such love down(擒爱记)
美女写真1
WebService在.NET中的实战应用教学视频 → 第2集
The king of fighters 97(Mobile phone games-apk)
C#与.NET技术平台实战演练
VC++6.0简体中文版
delv published in(发表于) 2013/12/30 4:33:33 Edit(编辑)
mssql用存储过程实现分页功能_mssql学习_编程技术

mssql用存储过程实现分页功能_mssql学习_编程技术

mssql用存储过程实现分页功能_mssql学习_编程技术-你的首页-uuhomepage.com
sql server用存储过程实现分页功能的实现代码:
if exists (select name from sysobjects where name ='sp_page')
drop proc sp_page
go
create proc sp_page
@strTable varchar(50), --表名
@strColumn varchar(50), --按该列来进行分页
@intColType int, --@strColumn列的类型,0-数字类型,1-字符类型,2-日期时间类型
@intOrder bit, --排序,0-顺序,1-倒序
@strColumnlist varchar(800), --要查询出的字段列表,*表示全部字段
@intPageSize int, --每页记录数
@intPageNum int, --指定页
@strWhere varchar(800), --查询条件
@intPageCount int output --总页数
as
declare @sql nvarchar(4000) --用于构造SQL语句
declare @where1 varchar(800) --构造条件语句
declare @where2 varchar(800) --构造条件语句
if @strWhere is null or rtrim(@strWhere)=''
-- 为了避免SQL关键字与字段、表名等连在一起,首先为传入的变量添加空格
begin --没有查询条件
set @where1=' where '
set @where2=' '
end
else
begin --有查询条件
set @where1=' where ('+@strWhere+') and '
set @where2=' where ('+@strWhere+') '
end
set @strColumn = ' ' + @strColumn + ' '
set @strColumnlist = ' ' + @strColumnlist + ' '
--构造SQL语句,计算总页数。计算公式为 总页数 = Ceiling ( 记录个数 / 页大小 )
set @sql='select @intPageCount=ceiling((count(*)+0.0)/'
+ cast(@intPageSize as varchar)
+ ') from ' + @strTable + @where2
--执行SQL语句,计算总页数,并将其放入@intPageCount变量中
exec sp_executesql @sql,N'@intPageCount int output',@intPageCount output
--将总页数放到查询返回记录集的第一个字段前,此语句可省略
--set @strColumnlist = cast(@intPageCount as varchar(30)) + ' as PageCount,' + @strColumnlist
if @intOrder=0 --构造升序的SQL
set @sql='select top '+ cast(@intPageSize as varchar) +
@strColumnlist +
' from ' + @strTable + @where1 +
@strColumn + '>(select max('+@strColumn+') '+
' from (select top '+ cast(@intPageSize*(@intPageNum - 1) as varchar) +
@strColumn + ' from '+ @strTable+@where2+'order by '+@strColumn+') t) order by '+ @strColumn
else --构造降序的SQL
set @sql='select top '+ cast(@intPageSize as varchar) +
@strColumnlist+
' from '+ @strTable + @where1 +
@strColumn + '<(select min('+@strColumn+') '+
' from (select top '+ cast(@intPageSize*(@intPageNum - 1) as varchar) +
@strColumn + ' from '+ @strTable+@where2+'order by '+@strColumn+' desc) t) order by '+
@strColumn + ' desc'
if @intPageNum=1 --第一页
set @sql='select top '+cast(@intPageSize as varchar) + @strColumnlist + ' from '+@strTable+
@where2+'order by ' + @strColumn + case @intOrder when 0 then '' else ' desc'
end
--PRINT @sql
exec(@sql)
go
declare @intPageCount int
exec sp_page 'Alarm1','Id',0,0,'*',20,1,'',@intPageCount output
drop proc sp_page





添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.