`
JavaVsServlet
  • 浏览: 11005 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

SQL Server 2000、2005数据库表无主键、无不重复值数据列分页问题处理方法

阅读更多


1、SQL Server2000

无主键、无不重复数据列:可使用多个列值组合形成不重复数据列来模拟主键。

由于2000不支持Row_NUMBER() over(order by 列名)函数,因此不能使用该函数获取唯一编号来达到模拟主键,实现分页。

建议使用分页语句语法如下:

selecttop 每页显示行数 * from 表名A where (A列+B列+C列...) not in(select top (当前页数-1)*每页显示行数) (A列+B列+C列...) from 表名A where条件 order by 列名[desc]) where条件 order by 列名[desc]

如:select top50 * from A where (A.a1+A.a2+A.a3) not in (select top ((1-1)*50) (a1+a2+a3)from A where a4 like '%张%' order by a4 desc) where a4 like '%张%' order by A.a4 desc

其中:①、A列、B列、C列为可组成不重复值组合,A列+B列+C列值为NULL时,表示A、B、C三列中有一列值为NULL,导致最终合并结果为NULL,可使用isNull函数来判断,语法为:isNull(列名,默认值),表示如果列值为空,则赋予默认值。如:(isNull(A列,'A')+isNull(B列,'B')+isNull(C列,'C')),
      ②、desc可选,加上则表示按照order by 列名降序排列。
      ③、子查询里面和外面都加where条件是为了更准确查询出记录,外面不加where条件,则查询出内容不满足条件值约束。



2、SQL Server2005

无主键、无不重复数据列:

①、可采用SQL Server 2000分页方法进行处理;

②、使用Row_NUMBER() over(order by 列名)函数,模拟主键,来实现分页,ROW_NUMBER() over(order by 列名)函数会生成从1开始的自然数。语法如下:

select * from (selectROW_NUMBER() over(order by A列[desc] as rowNumber, * from 表名 Awhere 条件) new_A where rowNumber between 每页显示行数*(当前页-1)+1 and 每页显示行数*当前页

如:select *from (select ROW_NUMBER() over(order by A.a desc) as rowNumber,* from A where 1= 1 ) new_A where rowNumber between 100*(1-1)+1 and 100*1

其中:desc可选,加上则表示按照order by 列名降序排列。



希望该思路和解决方法,能给遇到同样棘手问题的同仁提供参考和帮助。

弱弱的说一句:没有主键的表不能称之为表。—引用论坛大神***回复。

At the last,please设计数据库及表结构的大神,在设计时加上主键,以避免其他不必要的数据操作和维护方面的麻烦事情发生。





2
10
分享到:
评论

相关推荐

    SqlServer 永不重复的主键(非自增列)

    数据库自增列主键在数据库还原时百分百会出问题 为解决该问题特开发自定义式的主键 创建一个监控表,一个被调用的存储过程即可,推荐有存储过程编广泛使用的程序使用 调用方法 DECLARE @PKID CHAR(12)='' EXEC [dbo]....

    Oracle|Sqlserver|MySql数据库表结构一键生成工具

    "Oracle|Sqlserver|MySql数据库表结构一键生成工具" 提供了一种高效的方法来自动化这个过程,大大减轻了手动编写文档的工作量。这款工具能够支持三种主流的关系型数据库管理系统:Oracle、SQL Server和MySQL。 ...

    Sql Server 2005数据库实用教程

    首先,SQL Server 2005是微软推出的一款企业级关系型数据库管理系统,其强大的数据处理能力和安全性使其在各类企业中广泛应用。本教程会涵盖SQL Server 2005的安装与配置过程,确保用户能够顺利搭建数据库环境。 在...

    sql2000附加数据库错误602解决方式

    ### SQL2000附加数据库错误602的解决方式 在使用SQL Server 2000进行数据库附加操作时,可能会遇到错误602的问题:“Could not find row in sysindexes for database ID 13, object ID 1, index ID 1. Run DBCC ...

    sql server分页技术(SQL Server 与Access数据库相关分页技术)

    在SQL Server中,分页技术是一项关键功能,尤其在处理大量数据时,它能有效地提高查询性能并优化用户体验。在Web应用中,分页通常用于显示数据库中的数据列表,避免一次性加载所有数据导致的性能问题。以下是几种...

    java 连接sqlserver数据库查询,并分页显示

    在Java编程中,连接SQL Server数据库并执行查询是常见的任务,尤其当涉及到大量数据时,分页显示就显得尤为重要。本篇文章将详细讲解如何使用Java连接SQL Server数据库,执行查询语句以及实现分页显示。 首先,我们...

    SQL2000 2005 批量附加数据库工具

    SQL2000和SQL2005批量附加数据库工具是一款高效实用的软件,专为管理和维护Microsoft SQL Server 2000及2005数据库设计。它提供了一个便捷的方式来一次性附加多个数据库,极大地提高了数据库管理员的工作效率,特别...

    [SQL SERVER 2005数据库管理入门经典]

    SQL Server 2005是微软公司推出的企业级数据库管理系统,它在数据存储、处理和分析方面提供了强大的功能。 在SQL Server 2005中,数据库引擎是核心组件,负责处理所有的数据操作。学习这个系统首先要理解关系型...

    SqlServer2005 打开 SqlServer2008 mdf文件

    Sql Server 2005 打开 Sql Server 2008 mdf 文件数据库转换是指将 Sql Server 2008 中的数据库文件(mdf 文件)转换为 Sql Server 2005 可以识别的格式,以便在 Sql Server 2005 中使用。这种转换过程需要使用 Sql ...

    Sqlserver2005数据库级别异步分页

    在SQL Server 2005中,数据库级别的异步分页是一种提高大型数据集查询效率的技术,它允许应用程序以非阻塞方式获取数据,从而提高用户体验。这种技术结合了存储过程、JavaScript以及数据库的内部机制,以实现高效、...

    深入探讨SQL_Server_表的主键问题

    在SQL Server中,主键是表设计中的核心概念,它用于唯一标识表中的每一行记录。主键的设计和选择对数据库的性能、可维护性和扩展性有着深远影响。本文主要探讨了在MS SQL Server中遇到的主键设计问题及其解决方案。 ...

    sqlserver数据库主键

    SQL Server 数据库主键约束详解 在关系型数据库中,主键(Primary Key)是表中的一个或多个字段,它们的值可以唯一地标识表中的每一行记录。主键约束是数据库中的一种约束,它确保了表中的每一行记录的唯一性。 在...

    SQLServer2000数据库驱动包

    SQL Server 2000是微软公司推出的一款关系型数据库管理系统,它在企业级数据存储、管理和分析中扮演着重要角色。在这个“SQLServer2000数据库驱动包”中,包含的三个关键文件——mssqlserver.jar、msutil.jar和...

    SQL Server 2005数据库的简单应用

    SQL Server 2005是微软推出的一款关系型数据库管理系统,是SQL Server系列的一个重要版本。它在数据库管理、数据存储、数据处理等方面提供了广泛的功能,适用于中小型企业及开发人员进行数据管理和应用开发。本教程...

    SQL Server 2005示例数据库 安装包 [免费版]

    教你安装SQL Server ...虽然在 SQL Server 2005中文件的结构已经发生了改变,你仍然可以连接SQL Server 2000 的数据库。但是只有选择数据库的新格式,才能体验到SQL Server 2005 的新特性,你可以任意选择一种方式。

    SQL Server数据库实验指导书 实验教程 数据库实验02 通过SQL语句创建与管理数据表.pdf

    本实验主要围绕SQL Server 2005数据库的管理和操作展开,目的是让学生掌握数据库的创建、修改、查看、删除等基本操作,以及SQL Server Management Studio的使用。实验内容包括安装SQL Server 2005、启动和配置服务、...

    SQL Server数据库文档生成器

    SQL Server数据库文档生成器是一款专为SQL Server 2000和SQL Server 2005,以及Access数据库设计的工具,它能够帮助数据库管理员和开发者高效地创建数据表的详细文档。这款软件的主要功能是根据数据库中的数据表及其...

    sql-server中复制数据库某一个表到另一个数据库中

    在SQL Server环境中,有时我们需要将一个数据库中的某个表复制到另一个数据库中,这可能是为了备份、数据迁移或创建测试环境等目的。根据提供的标题、描述和部分代码内容,我们可以整理出一套较为完整的操作流程和...

    SQLServer2005一千万条以上记录分页数据库优化经验总结

    资源名称:SQL Server 2005 一千万条以上记录分页数据库优化经验总结 资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。

    SQL Server 2000数据库应用教程-电子教案

    SQL Server 2000基于关系模型,其中,表是数据的主要载体,而关系是通过主键和外键来建立表之间的联系。此外,SQL Server 2000还支持实体-关系(E-R)模型,用于概念设计,帮助用户更好地理解和组织数据。 四、...

Global site tag (gtag.js) - Google Analytics