【老码农怀旧】一个简单好用的分页存储过程

数据库存储过程是一组预先创建并用指定的名称存储在数据库服务器上的 SQL 语句,将使用比较频繁或者比较复杂的操作,预先用 SQL 语句写好并用一个指定的名称存储起来,以后当需要数据库提供与已定义好的存储过程的功能相同的服务时,只需再次执行该存储过程。

数据库存储过程的优点:
(1)存储过程只在创建时进行编译,以后每次执行存储过程都不需再重新编译,而一般 SQL 语句每执行一次就编译一次,因此使用存储过程可以大大提高数据库执行速度。
(2)通常,复杂的业务逻辑需要多条 SQL 语句。这些语句要分别地从客户机发送到服务器,当客户机和服务器之间的操作很多时,将产生大量的网络传输。如果将这些操作放在一个存储过程中,那么客户机和服务器之间的网络传输就会大大减少,降低了网络负载。
(3)存储过程创建一次便可以重复使用,从而可以减少数据库开发人员的工作量。
(4)安全性高,存储过程可以屏蔽对底层数据库对象的直接访问,使用 EXECUTE 权限调用存储过程,无需拥有访问底层数据库对象的显式权限。

数据库存储过程的缺点:
(1)SQL本身的局限性-SQL本省是一种面向结构化查询的语言,本质是面向过程的,面对复杂的业务逻辑处理起来会力不从心
(2)移植性差,不同的数据库SQL语法有些差别
(3)不易调试
(4)对开发人员SQL能力要求比较高。ps:现在很多新手都不知道如何创建存储过程╮(╯_╰)╭ 
    目前常用的数据库都支持存储过程,例如 IBM DB2,Microsoft SQL Server,Oracle,Access 等,开源数据库系统 MySQL 也在 5.0 的时候实现了对存储过程的支持。

一个简单好用的分页存储过程实现

CREATE PROCEDURE [dbo].[SP_K_PAGE]
(
	@totalCount INT OUTPUT,  --过滤后的总记录数
	@tableName varchar(MAX),--表名
	@orderSql varchar(MAX),--排序字段
	@where nvarchar(MAX)=‘‘, --过滤条件
	@pageIndex int=1,--页码
	@pageSize int=10--页大小
)
AS 

DECLARE @pageSql NVARCHAR(MAX); --分页sql
DECLARE @whereSql NVARCHAR(MAX); --过滤sql
DECLARE @coungtSql NVARCHAR(MAX);--总记录数sql
SET @pageIndex=‘‘;
SET @whereSql=‘‘;
SET @totalCount=‘‘;
SET @coungtSql=‘‘;

IF @where <>‘‘
BEGIN
	SET @whereSql=‘ WHERE (‘+ @where +‘)‘;
END

IF @pageIndex<=0
BEGIN
	SET @pageIndex=1;
END 

IF @pageSize<=0
BEGIN
	SET @pageSize=10;
END 

SET @coungtSql=‘SELECT COUNT(*) FROM ‘+ @tableName +‘ WHERE ‘[email protected];

exec sp_executesql @coungtSql,N‘@Count INT OUTPUT‘, @totalCount OUTPUT

SET @pageSql=‘SELECT *  FROM ( SELECT ROW_NUMBER() OVER (ORDER BY ‘+ @orderSql +‘) pageIndex, * FROM ‘+ @tableName [email protected]+‘ ) t_page WHERE pageIndex > ‘
+ CONVERT(VARCHAR,@pageIndex) +‘ AND pageIndex <= ‘+CONVERT(VARCHAR,@pageSize);

EXEC(@pageSql)
GO

DECLARE @Count INT ;
EXEC SP_K_PAGE @Count OUTPUT,‘COURSE‘,‘Cource_Name‘,‘CreateTime < GETDATE()‘

我怀念那夕阳下的奔跑,那是我逝去的青葱!结束。

时间: 2024-08-07 10:41:53

【老码农怀旧】一个简单好用的分页存储过程的相关文章

一个移动开发老码农的书单

了解更多老码农的个人信息,爱八卦的,请看这里:http://www.koulianbing.com/?page_id=12 老码农是个比较宅的人,不爱玩游戏,只爱看书.过去10年来读的书中,还能记得的书大部都是很不错的,列出来推荐给大家.会持续更新. 一.开发技术 1.Effective Objective C 2.0 适合代码量在5000行以后阅读,对细节优化,性能提升,结构设计都非常有帮助,强烈建议所有iOS码农人手一本,至少读三遍. 2.Objective-C高级编程 日本人写的,薄薄的一

老码农谈NDK开发

关于NDK,我也天真过 5.6年前刚拿到HTC的G1开始做Android开发时,得知Java可以和C混编激动不已,真的是拿到钥匙见什么都是锁,老想着用NDK做些事情.到后来公司做了一个带有强烈技术风格的业务决策,我被迫把NDK来回折腾了很长时间,也没能折腾出什么成果,但这个决策却把公司折腾完蛋,我也就对NDK渐渐心恢意冷了,真正体会到,做业务,服务用户为主,技术上,好用是王道. 今天收到一封邮件(来自:[email protected]),让我谈谈NDK,真的挠到了我的痒处,一直有些话是想跟对N

老码农教你在 StackOverflow 上谈笑风生

作为一个高大上的码农,你肯定用到过 StackOverflow,必须的.会有人否定这个断言么?那他恐怕不是真正的码农,或者说还没入门.StackOverflow 对于码农的重要性,基本就和诸葛亮对刘备的重要性差不多,它上知 Java 下知 MySQL,中间懂得各种算法.只要你拥有与它沟通的技巧,它几乎可以回答你遇到的任何技术问题. 不过,很多码农对它的体验也就仅限于此了.查询一下,找到问题,然后把里边的代码复制粘贴到自己的 IDE 里,然后接着调试代码.万一没有找到符合的条目,就只好去其他地方问

老码农教你学英语

转自:http://blog.jobbole.com/45296/ 对于咱们这些高端大气.时刻需要和国际接轨的码农,英语的重要性自然是毋庸置疑的.尤其是那些胸怀大志的潜在大牛们,想在码农行业闯出一片天地,秒杀身边的小弟们,熟练掌握英语更是实现其目标最关键的因素之一.否则,试想在你捧着某出版社刚刚翻译出来的<JSP 高效编程>苦苦学习JSP模板的时候,你旁边的小弟却是拿着原版的<AngularJS in Action>学习开发单页面应用,虽然你们都同样认真地学习了一个月,可做出来东西

老码农眼中的CRM 图解

概述 喔家ArchiSelf CRM 是企业"以客户为中心"价值观的核心体现之一, 各种2B的应用都无可避免,而企业应用具有一定的复杂性,理解CRM系统也不是轻而易举的事情.在老码农的眼中,CRM 系统可能是这样的: 业务组成 业务单元的组成是第一位, 业务单元是企业的实在需求,也是采用CRM系统的主要因素. 如上所示,业务单元大约可以概括成9个方面. 客户管理 客户是第一位的, 先贤德鲁克的话不用赘述.客户管理包括什么呢? 人在业务中的重要性不言而喻.客户联系人管理包括建立联系人概况

逃离北上广之后,老码农的悲哀(顺便晒下简历,请围观,但请勿人肉,求放过!求无视!)

在此记录一下,逃离北上广之后的五个月后的今日的感想. 前戏: 最近老板出去旅游了,要十几天才回来.由于老婆最近总是在碎碎念,说小孩在成都读不起书,收入降低了这么多,真是不该回来!云云... 顺便说一下现状吧,本来是受朋友邀请才回来工作的,也就是现在的BOSS,我的王哥,王哥对我还是挺照顾的,也是非常的感谢.公司是做传统收银管理软件的,在现在的行业内一直是国内领先,效益还算可以,加上王哥自己开发有4个人,但是主力开发由于身体原因已经在家修养了半年多了,一直没来上班.由于软件是delphi开发的,面

37岁老码农现身说法:青春饭怎么吃?

程序员第一考虑的当然是技术,但现在真不知道学什么了:干了三四年的开发,手头的工作马马虎虎都没什么问题了.就算有问题,也是业务逻辑上的问题,系统太复杂,吃不透;或者系统里一些过时的/生僻的技术,真心觉得没必要花时间花精力去研究,能对付就行了,是不是?反正下家单位99.99%的几率是不会用到这些东西的的. 那么就是一些新技术了.新技术杂得很,不知道学什么,框架类库啥的其实没什么技术含量,一两个星期就可以上手,上手了之后呢?往深里学?其实和老旧技术一样的问题,谁知道下一份工作用不用得上呢!而且没趣,大

退休老码农提醒你!学习Java,这些知识要牢记,能让你少走弯路!

现在的java在编程界基础已经根深蒂固了,随之带来的影响就是有大量的岗位,大量的工作方向,虽然现在很多的新兴语言势头都非常的猛烈,但是这并不影响java依然体量最大的编程语言,而且丝毫也看不出这门语言有任何衰减的趋势,依然有大量的从业人员在java开源领域贡献着大量的代码,在新兴的领域java切入进来也是毫不费力.创一个小群,供大家学习交流聊天如果有对学java方面有什么疑惑问题的,或者有什么想说的想聊的大家可以一起交流学习一起进步呀.也希望大家对学java能够持之以恒java爱好群,如果你想要

”去他丫的北上广,老子要去成都定居了!“一名33岁老码农有话说

"不后悔来成都,这里真的生活质量相比北京.深圳要高很多,巴适的很",这是老叶最近和我聊天聊的,老叶是一名工作12年的程序员,在北京,深圳都呆过,一直没有合适的城市让他心安或者是有归属感,来成都后,就定下了自己以后都在这座城市了. 老叶是湖南人,12年前,从一个一般二本学校毕业后,还是个初生牛犊不怕虎的小伙子,毕业后,就去闯北京,起初是求生存,在北京一家小公司干着,月薪只有3000,相比现在年轻人一毕业拿的薪资,可以说非常低了.求生存是在北京的第一步,那时老叶住在北京靠近中关村一个叫树村