问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

用存储过程实现分页 给出字段有表,id,pagesize,currpage

发布网友 发布时间:2024-10-01 23:23

我来回答

2个回答

热心网友 时间:2024-11-21 00:40

直接用就可以了 简单实用。。
--@datasrc
-- the table (or stored procedure, etc.) name
--@orderBy
-- the ORDER BY clause
--@fieldlis
-- the fields to return (including calculated expressions)
--@filter
-- the WHERE clause
--@pageNum
-- the page to return (must be greater than or equal to one)
--@pageSize
-- the number of records per page
CREATE PROCEDURE pager
@datasrc nvarchar(200)
,@orderBy nvarchar(200)
,@fieldlist nvarchar(200) = '*'
,@filter nvarchar(200) = ''
,@pageNum int = 1
,@pageSize int = NULL
AS
SET NOCOUNT ON
DECLARE
@STMT nvarchar(max) -- SQL to execute
,@recct int -- total # of records (for GridView paging interface)
IF LTRIM(RTRIM(@filter)) = '' SET @filter = '1 = 1'
IF @pageSize IS NULL BEGIN
SET @STMT = 'SELECT ' + @fieldlist +
'FROM ' + @datasrc +
'WHERE ' + @filter +
'ORDER BY ' + @orderBy
EXEC (@STMT) -- return requested records
END ELSE BEGIN
SET @STMT = 'SELECT @recct = COUNT(*)
FROM ' + @datasrc + '
WHERE ' + @filter
EXEC sp_executeSQL @STMT, @params = N'@recct INT OUTPUT', @recct = @recct OUTPUT
SELECT @recct AS recct -- return the total # of records
DECLARE
@lbound int,
@ubound int
SET @pageNum = ABS(@pageNum)
SET @pageSize = ABS(@pageSize)
IF @pageNum < 1 SET @pageNum = 1
IF @pageSize < 1 SET @pageSize = 1
SET @lbound = ((@pageNum - 1) * @pageSize)
SET @ubound = @lbound + @pageSize + 1
IF @lbound >= @recct BEGIN
SET @ubound = @recct + 1
SET @lbound = @ubound - (@pageSize + 1) -- return the last page of records if -- no records would be on the
-- specified page
END
SET @STMT = 'SELECT ' + @fieldlist + '
FROM (
SELECT ROW_NUMBER() OVER(ORDER BY ' + @orderBy + ') AS row, *
FROM ' + @datasrc + '
WHERE ' + @filter + '
) AS tbl
WHERE
row > ' + CONVERT(varchar(9), @lbound) + ' AND
row < ' + CONVERT(varchar(9), @ubound)
EXEC (@STMT) -- return requested records
END

热心网友 时间:2024-11-21 00:43

http://hi.baidu.com/lz0830/blog/item/fb06ebb37c3e77a0d9335a1d.html
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
这是个成本会计题,马上要考这道原题了,求大虾帮忙 财务管理类问题,求大虾帮忙,小弟感激不尽。具体问题看问题补充。_百度... 光影魔术手怎么换底色 光影魔术手换底色教程 ...米的绳子围绕一棵树干饶了6圈,还余下1.16米,这棵树干上的直径大约是... ...还余下1.16米,这棵树的树干的直径大约是多少米?求算式! ibm x3500 M5 服务器 运行时风扇声音好大,吵死了,可以下掉一个吗... IBMX3500 M5,最近老是出现自动关机的情况,需要把服务器电源拔掉半分钟... 治疗萎缩性胃炎的方法 怎么治萎缩胃炎 JYF-40FS06电饭煲190块买的是假的吗 新航路开辟和丝绸之路开通的共同影响是 绘图员绘图员工作描述 如何区别条、款、项? 寡妇打野(LOL寡妇打野攻略)介绍_寡妇打野(LOL寡妇打野攻略)是什么 LOL英雄联盟S8赛季痛苦之拥伊芙琳出装攻略 LOL痛苦之拥伊芙琳打野全方位分析介绍_LOL痛苦之拥伊芙琳打野全方位分 ... LOL新版本打野寡妇怎么玩 榴莲壳煲汤的常见做法如何用榴莲壳煲汤 D盘F盘突然消失 安装一键还原精灵后D盘不见了,试了很多种方法都不行,求解。。。谢谢拉... 下列哪些动作能够锻炼腿部肌肉力量 A. 鹭式 B. 蝴蝶式 C. 猫伸展式... 用了一键还原精灵后 为什么D盘没有了 怎么办 下载一键还原精灵后.D盘不见了,还能找回不吗? 2024如何才能取得著作权? 如何才能取得著作权 在我国怎样取得著作权 车载冰箱一直家用通电可以吗 阿胶西洋参五味子一起打粉喝有哪些效果 凯迪拉克XT4和奔驰GLA哪个好 BBA最强竞争车型满满黑科技 为什么充电一直显示在充电,但是充不进呢? 存储过程分页怎么不显示row 在菜市场买的牛肉能保存几天 开盘半小时熔断交易停止,净值怎么算 熔断当天3点前赎回基金的价格以那天算 新房刚装修好,需要买点家具了,全友、VISN、曲美、顾家哪个好?有懂得... 新房装修好了,准备买个家具,大家了解的能和我说说完美家装定制家具的... 考科目二要注意什么? 考驾照科目二注意事项是什么? 新房装修,要买些家具,沙发茶几什么的,淳尚家居的好吗? 买电饭堡好还是电磁炉好 关于海外华侨心系祖国的段落,约200字左右,各位网友帮帮me,thank 毕务国报效祖国 ...我妈用她的名字给我办的 我现在成年了 我可以把那个手机号改成我... 成都哪个医院打瘦脸针好? ...我妈得身份证和名字弄个支付宝得 但是现在成年了想把支付宝得姓名... 成都医院哪家打瘦脸针好? 他费了好大劲才把脚从泥里拔出来。其中的人物是? 我未成年的时候注册支付宝用的是我妈的名字,现在我成年了想要撤销我妈... 如何才能摆脱我妈的控制 大家随便来发表意见建议?? 我妈带我走进小姐这行,她以前就做过这行...