话不多说,请看代码
-------------------------------------
-----作者:张欣宇
-----时间:2013-06-28
-----简介:根据参数和条件分页查询
-------------------------------------
Create proc [dbo].[Up_PagingQueryByParameter]
(
----- 表名或能查询到结果的SQL语句{SQL语句左右必须有括号例:(select * from tbl1)}
@TableName varchar(max),
----- 要查询的列名语句; 可空默认*
@ColumnName varchar(5000),
----- 用来排序的列; 不可为空
@OrderByColumnName varchar(50),
----- 排序desc(倒序5.4.3.2.1)或asc(正序1.2.3.4.5); 可空默认asc
@ShrtBy varchar(4),
----- Where条件; 可空默认1=1
@Where varchar(5000),
----- 每页显示数; 可空默认20
@PageShows int,
----- 当前页数; 可空默认1
@CurrentPage int,
----- 0为分页查询;其他为查询全部; 可空默认0
@IsPaging int
)
as
begin
----- 参数检查及规范
if isnull(@Where,N'')=N'' set @Where = N'1=1';
if isnull(@ColumnName,N'')=N'' set @ColumnName = N'*';
if isnull(@PageShows,0)<1 set @PageShows = 20;
if isnull(@CurrentPage,0)<1 set @CurrentPage = 1;
if isnull(@ShrtBy,N'')=N'' set @ShrtBy = 'asc';
if isnull(@IsPaging,0)<>1 set @IsPaging = 0;
----- 定义
-- 拼接的SQL语句
declare @SqlStr nvarchar(max);
declare @SqlWithStr nvarchar(max);
-- 开始条数
declare @StartIndex int;
-- 结束条数
declare @EndIndex int;
----- 赋值
set @StartIndex = (@CurrentPage-1)*@PageShows+1;
print(@CurrentPage);
print(@PageShows);
print(@StartIndex);
set @EndIndex = @CurrentPage*@PageShows;
print(@EndIndex);
set @OrderByColumnName=@OrderByColumnName+' '+@ShrtBy;
----- 分页查询
set @SqlWithStr = N'with temp as(select ROW_NUMBER() over(order by '+@OrderByColumnName+N') as RowNumber,'+@ColumnName+N' from '+@TableName+N' as tableName where '+@Where+N')';
if(@IsPaging = 0)
begin
set @SqlStr = @SqlWithStr + N' select '+@ColumnName+N' from temp where temp.RowNumber between '+convert(nvarchar(20),@StartIndex)+N' and '+convert(nvarchar(20),@EndIndex)+N'';
---- print(@SqlStr);
exec(@SqlStr);
----- 总数查询
set @SqlStr = @SqlWithStr + N' select count(*) as TotalNumber from temp';
---- print(@SqlStr);
exec(@SqlStr);
end
else
begin
set @SqlStr = @SqlWithStr + N' select '+@ColumnName+N' from temp';
---- print(@SqlStr);
exec(@SqlStr);
end
end
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
# sql
# 分页
# 存储过程
# 五种SQL Server分页存储过程的方法及性能比较
# SQL Server 分页查询通用存储过程(只做分页查询用)
# sqlserver2005利用临时表和@@RowCount提高分页查询存储过程性能示例分享
# 深入sql server 2005 万能分页存储过程的详解
# 基于Sql Server通用分页存储过程的解决方法
# mssql 高效的分页存储过程分享
# SQL Server 2005通用分页存储过程及多表联接应用
# MSSQL MySQL 数据库分页(存储过程)
# 三种SQL分页查询的存储过程代码
# SQL通用存储过程分页
# 支持多表联合
# 条数
# 每页
# 他为
# 多说
# 为空
# max
# TableName
# varchar
# desc
# ColumnName
# OrderByColumnName
# select
# 张欣
# brush
# pre
# class
# dbo
# Up_PagingQueryByParameter
相关文章:
python的本地网站制作,如何创建本地站点?
西安专业网站制作公司有哪些,陕西省建行官方网站?
高端云建站费用究竟需要多少预算?
建站之星安装后界面空白如何解决?
C++用Dijkstra(迪杰斯特拉)算法求最短路径
php能控制zigbee模块吗_php通过串口与cc2530 zigbee通信【介绍】
宝塔建站助手安装配置与建站模板使用全流程解析
天津个人网站制作公司,天津网约车驾驶员从业资格证官网?
简单实现Android验证码
建站之星云端配置指南:模板选择与SEO优化一键生成
建站主机选购指南与交易推荐:核心配置解析
打鱼网站制作软件,波克捕鱼官方号怎么注册?
如何通过主机屋免费建站教程十分钟搭建网站?
c++怎么实现高并发下的无锁队列_c++ std::atomic原子变量与CAS操作【详解】
行程制作网站有哪些,第三方机票电子行程单怎么开?
油猴 教程,油猴搜脚本为什么会网页无法显示?
简历在线制作网站免费版,如何创建个人简历?
网站好制作吗知乎,网站开发好学吗?有什么技巧?
建站上传速度慢?如何优化加速网站加载效率?
哈尔滨网站建设策划,哈尔滨电工证查询网站?
国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?
网站制作报价单模板图片,小松挖机官方网站报价?
电商网站制作公司有哪些,1688网是什么意思?
如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?
常州自助建站费用包含哪些项目?
移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?
建站之星北京办公室:智能建站系统与小程序生成方案解析
如何通过NAT技术实现内网高效建站?
如何挑选最适合建站的高性能VPS主机?
宝塔新建站点报错如何解决?
如何在IIS服务器上快速部署高效网站?
如何在宝塔面板中创建新站点?
香港服务器租用每月最低只需15元?
,石家庄四十八中学官网?
三星网站视频制作教程下载,三星w23网页如何全屏?
已有域名和空间,如何快速搭建网站?
南京做网站制作公司,南京哈发网络有限公司,公司怎么样,做网页美工DIV+CSS待遇怎么样?
如何快速生成凡客建站的专业级图册?
西安大型网站制作公司,西安招聘网站最好的是哪个?
大连网站设计制作招聘信息,大连投诉网站有哪些?
专业网站制作企业网站,如何制作一个企业网站,建设网站的基本步骤有哪些?
如何通过远程VPS快速搭建个人网站?
php json中文编码为null的解决办法
济南网站建设制作公司,室内设计网站一般都有哪些功能?
存储型VPS适合搭建中小型网站吗?
深圳网站制作培训,深圳哪些招聘网站比较好?
如何快速搭建虚拟主机网站?新手必看指南
高防服务器租用指南:配置选择与快速部署攻略
如何快速生成橙子建站落地页链接?
建站之星在线版空间:自助建站+智能模板一键生成方案
*请认真填写需求信息,我们会在24小时内与您取得联系。