假设数据库中有张表,表名是UserName,字段分别是ID(int),Name(nvarchar),Age(int)。
如果不带查询条件存储过程是:
复制代码 代码如下:
CREATE PROCEDURE [dbo].[UserName]
@pageIndex int,
@pageSize int
AS
declare @min int;
declare @max int;
set @min=@pageSize*(@pageIndex-1)+1;
set @max=@pageSize*@pageIndex;
with myTable as(select ID,Name,Age,Row_Number() over (order by ID) as rownum from [UserName] )
select ID,Name,Age from myTable where rownum between @min and @max
RETURN
这个分页存储过程很不实用,并且表是固定的。
下面十二个万能分页存储过程,
复制代码 代码如下:
CREATE PROCEDURE [dbo].[UP_GetRecordByPage]
@tblName varchar(255), -- 表名
@fldName varchar(255), -- 主键字段名
@PageSize int , -- 页尺寸
@PageIndex int , -- 页码
@IsReCount bit, -- 返回记录总数, 非 0 值则返回
@OrderType bit, -- 设置排序类型, 非 0 值则降序
@strWhere varchar(1000) = '' -- 查询条件 (注意: 不要加 where)
AS
declare @strSQL varchar(6000) -- 主语句
declare @strTmp varchar(2000) -- 临时变量(查询条件过长时可能会出错,可修改100为1000)
declare @strOrder varchar(400) -- 排序类型
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
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 <> 0
begin
set @strTmp =''
if @strWhere != ''
set @strTmp = ' where ' + @strWhere
set @strSQL = 'select top ' + str(@PageSize) + ' * from ['
+ @tblName + ']' + @strTmp + ' ' + @strOrder
exec (@strSQL)
end
if @IsReCount != 0
begin
set @strSQL = 'select count(*) as Total from [' + @tblName + ']'+' where ' + @strWhere
exec (@strSQL)
end
使用方法:
复制代码 代码如下:
EXEC dbo.UP_GetRecordByPage @tblName = ‘UserName', -- varchar(255)
@fldName = 'ID', -- varchar(255)
@PageSize = 2, -- int
@PageIndex = 1, -- int
@IsReCount = 0, -- bit
@OrderType = 1, -- bit
@strWhere = 'Age=13' -- varchar(1000)
如果哪里有不正确的地方,欢迎批评指正,共同进步。
相关推荐:
SEO很多,如何在竞争激烈的市场中脱颖而出?,在SEO优化中
seo追词是什么,seo词条 ,52580609AI
什么是神马排名?让你的网站脱颖而出,轻松占据搜索引擎的C位!,乳山网站优化关键词排名
提升写作效率,释放创意潜力文章生成AI软件的未来
为什么要年前做SEO,企业为什么做seo推广 ,云南ai大数据公司
ChatGPT错误处理与异常情况解决方法:让你的AI助手更加智能与可靠,智能ai鼠标ai智能语音
seo独立站是什么,独立站推广是什么 ,ai曲线笔刷扩展
文章疑似AI生成怎么办?如何辨别并应对AI生成文章的挑战
SEO优化公司一般怎么优化?揭秘专业SEO服务的操作流程,人工智能ai写作软件 哪一个好
未来智能:AI智能人工软件引领数字化变革
为什么要seo 运营,为什么需要seo ,ai人物头盔
SEO关键词的选择步骤:让你的网站在搜索引擎中脱颖而出,ai书法化
AI免费生成:开启智能创作新纪元,助力你的创意无限可能
SEO用户:如何为您的网站带来持续流量和转化,惠州网站推广哪个好
文章AI生成软件高效创作新纪元
seo运营经理是什么,seo和运营的区别 ,皖妍ai宁慕晴o
SEO搜索关键词是什么意思?让你轻松网站流量的秘密!,ai颜色不对
了解SEO:让你的网站在搜索引擎中脱颖而出的秘密武器,宝山区常见网站优化
什么是蜘蛛弛?揭秘这个SEO优化背后的神秘工具,南沙seo优化排名价格
Bing搜索的注意事项-提高搜索效率与准确性,轻松获取所需信息,最近ai写作软件推荐
SEO网络营销:如何通过精准优化提升品牌价值,青州建设网站电话
SEO做法-提升网站流量与排名的关键秘诀,屏东网站推广招聘
【SEO优化全攻略】提升网站流量的终极秘籍,带你轻松玩转搜索引擎优化!,金融网站推广维护
seo该从什么开始,seo是什么时候开始的 ,ai写作免费英文怎么说
ChatGPT服务异常:为何影响到你的工作和生活?如何有效解决?,ai怎么保持圆角不变
SEO难吗?揭秘SEO背后的真相,让你轻松上手!,大旺百度网站推广
软件我在AI:改变未来的智能助手
seo要公司什么资源,做seo需要用到什么软件 ,ai明星换了
GPT在什么时候被人熟知的?从技术突破到广泛应用的背后故事,ai商业新思维ai课程
好用的AI写作软件免费推荐:创作新境界!
OpenAIGPT:开启智能时代的语言革命,ai辣妹动漫
ChatGPT破解:人工智能的无限潜力与破解秘笈,意识变ai
seo进阶买什么书运营,seo入门难吗 ,没有ai软件怎么打开ai图片
什么是seo方法,何为seo ,ai写作神器源码是什么
seO经理是什么岗位,seo经理招聘 ,ai写作重复被查
SEO站内优化:提升网站排名的核心策略,厦门市网站优化企业
什么是seo网络推广seo顾问,seo网络推广员 ,ai20170119
ChatGPT4账号共享-让AI助力你的学习与工作,轻松提升效率,ai巨无霸
ChatGPT回答是空白的背后,究竟隐藏着什么秘密?,如何用ai写作来赚钱
SEO舆情:如何通过有效的舆情管理提升企业品牌形象,seo推广外包提高收录
优化网站的秘诀:提高网站速度与用户体验,助力业务腾飞,旅游网站建设步骤
ChatGPT诞生背景:人工智能如何突破语言的边界,ai辅助市场调研
SEO外包:提升网站排名与品牌曝光的最佳选择,大创建设网站
ChatGPT国内版:为中国用户量身定制的智能助手,开启AI新纪元,ai文章赚钱
AI.生成重新定义创造力的新纪元
亚马逊的seo是什么阿,亚马逊seo项目 ,中考用ai写作会判0分吗
ChatGPT显示“此网站无法加载站点”:背后原因与解决办法详解,用ai画明度渐变条
什么是“神马关键词”?如何用它提升你的网络营销效果?,新闻发布网站怎么做推广
SEO趋势:2025年搜索引擎优化的未来发展,河南省营销推广系统官网
AI的两个主要发展阶段:从起步到突破,如何重塑未来,wps ai写作去哪里