易截截图软件、单文件、免安装、纯绿色、仅160KB

浅谈基于SQL Server 分页存储过程的演进

 简单谈基于SQL SERVER 分页存储过程的演进
作者:郑佐
日期:2006-9-30
针对数据库数据在UI界面上的分页是老生常谈的问题了,网上很容易找到各种“通用存储过程”代码,而且有些还定制查询条件,看上去使用很方便。笔者打算通过本文也来简单谈一下基于SQL SERVER 2000的分页存储过程,同时谈谈SQL SERVER 2005下分页存储过程的演进。
在进行基于UI显示的数据分页时,常见的数据提取方式主要有两种。第一种是从数据库提取所有数据然后在系统应用程序层进行数据分页,显示当前页数据。第二种分页方式为从数据库取出需要显示的一页数据显示在UI界面上。
以下是笔者对两种实现方式所做的优缺点比较,针对应用程序编写,笔者以.NET技术平台为例。
类别
 SQL语句
 代码编写
 设计时
 性能
 
第一种
 语句简单,兼容性好
 很少
 完全支持
 数据越大性能越差
 
第二种
 看具体情况
 较多
 部分支持
 良好,跟SQL语句有关
 
 
对于第一种情况本文不打算举例,第二种实现方式笔者只以两次TOP方式来进行讨论。
在编写具体SQL语句之前,定义以下数据表。
数据表名称为:Production.Product。Production为SQL SERVER 2005中改进后的数据表架构,对举例不造成影响。
包含的字段为:
列名
 数据类型
 允许空
 说明
 
ProductID
 Int
 
 产品ID,PK。
 
Name
 Nvarchar(50)
 
 产品名称。
 
不难发现以上表结构来自SQL SERVER 2005 样例数据库AdventureWorks的Production.Product表,并且只取其中两个字段。 
分页相关元素:
PageIndex – 页面索引计数,计数0为第一页。
PageSize – 每个页面显示大小。
RecordCount – 总记录数。
PageCount – 页数。
对于后两个参数,笔者在存储过程中以输出参数提供。
 
1.SQL SERVER 2000中的TOP分页
CREATE PROCEDURE [Zhzuo_GetItemsPage]
    @PageIndex INT, /*@PageIndex从计数,0为第一页*/
    @PageSize  INT, /*页面大小*/
    @RecordCount INT OUT, /*总记录数*/
    @PageCount INT OUT /*页数*/
AS
/*获取记录数*/
SELECT @RecordCount = COUNT(*) from Production.Product


相关文档:

远程备份sql数据库到本机

 条件:
    拥有sa权限
    开启 xp_cmdshell
方法:
 开启/关闭 xp_cmdshell 必须在 master  库执行
EXEC sp_configure 'show advanced options', 1 
RECONFIGURE WITH OVERRIDE 
EXEC sp_configure 'xp_cmdshell', 1 
RECONFIGURE ......

查看sql server 2000的版本的三种方法

方法一:
打开企业管理器->SQL SERVRE 组->(local)window NT ->属性
产品:有personal的是个人版的,有Enterprise的是企业版的
产品版本:8.00.2039(sp4);8.00.760(sp3)
方法二:
第一步:在查询分析器
select @@version
print @@version
Microsoft SQL Server 2000 - 8.00.2039 (Intel X86)
May 3 2005 ......

ORACLE 10G PL/SQL PACKAGE学习笔记


DBMS_CHANGE_NOTIFICATION
对象(表)数据更新通知
DBMS_APPLICATION_INFO
设置/读取SESSION APPLICATION信息,操作V$SESSION_LONGOPS
DBMS_ALERT
告警
DBMS_DATAPUMP
数据迁移
DBMS_DB_VERSION
数据库版本定义
DBMS_DDL
Compiles、wrapped、Reorganizes 对象
DBMS_DEBUG
ORACLE DEPL/SQL debugger 工具
DB ......

SQL SERVER日期时间函数

 来源http://hi.baidu.com/smilevt/blog/item/04bddeef0fe3f42e2cf5348b.html这里还有很多sql server的帖子
1. 当前系统日期、时间
select getdate()
2. dateadd 在向指定日期加上一段时间的基础上,返回新的 datetime 值
例如:向日期加上2天
select dateadd(day,2,'2004-10-15') --返回:2004-10-17 00:00:00. ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号