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设计数据库及表结构的大神,在设计时加上主键,以避免其他不必要的数据操作和维护方面的麻烦事情发生。
分享到:
相关推荐
在描述的场景中,由于医院服务器和数据库版本的限制,使用了SQL Server Integration Services (SSIS) 来解决无主键表的同步问题。SSIS 是一种强大的ETL(提取、转换、加载)工具,能够处理各种数据整合任务。然而,...
数据库自增列主键在数据库还原时百分百会出问题 为解决该问题特开发自定义式的主键 创建一个监控表,一个被调用的存储过程即可,推荐有存储过程编广泛使用的程序使用 调用方法 DECLARE @PKID CHAR(12)='' EXEC [dbo]....
"Oracle|Sqlserver|MySql数据库表结构一键生成工具" 提供了一种高效的方法来自动化这个过程,大大减轻了手动编写文档的工作量。这款工具能够支持三种主流的关系型数据库管理系统:Oracle、SQL Server和MySQL。 ...
首先,SQL Server 2005是微软推出的一款企业级关系型数据库管理系统,其强大的数据处理能力和安全性使其在各类企业中广泛应用。本教程会涵盖SQL Server 2005的安装与配置过程,确保用户能够顺利搭建数据库环境。 在...
第2部分(第3~9章)是本书的重点,也是读者深入学习SQL Server 2005的基础,详细介绍了SQL Server 2005的安装和配置过程,如何创建和管理数据库、数据表,以及如何对数据进行查询、修改、输出等内容;第3部分(第10~14章)...
在IT领域,特别是数据库管理与开发中,导出SQL Server 2000的表结构是一项常见且重要的任务。这不仅对于数据迁移、备份、分析或文档化数据库结构至关重要,而且也是确保数据完整性和可移植性的关键步骤。下面将详细...
在SQL Server中,分页技术是一项关键功能,尤其在处理大量数据时,它能有效地提高查询性能并优化用户体验。在Web应用中,分页通常用于显示数据库中的数据列表,避免一次性加载所有数据导致的性能问题。以下是几种...
### SQL2000附加数据库错误602的解决方式 在使用SQL Server 2000进行数据库附加操作时,可能会遇到错误602的问题:“Could not find row in sysindexes for database ID 13, object ID 1, index ID 1. Run DBCC ...
在Java编程中,连接SQL Server数据库并执行查询是常见的任务,尤其当涉及到大量数据时,分页显示就显得尤为重要。本篇文章将详细讲解如何使用Java连接SQL Server数据库,执行查询语句以及实现分页显示。 首先,我们...
SQL2000和SQL2005批量附加数据库工具是一款高效实用的软件,专为管理和维护Microsoft SQL Server 2000及2005数据库设计。它提供了一个便捷的方式来一次性附加多个数据库,极大地提高了数据库管理员的工作效率,特别...
Sql Server 2005 打开 Sql Server 2008 mdf 文件数据库转换是指将 Sql Server 2008 中的数据库文件(mdf 文件)转换为 Sql Server 2005 可以识别的格式,以便在 Sql Server 2005 中使用。这种转换过程需要使用 Sql ...
在SQL Server 2005中,数据库级别的异步分页是一种提高大型数据集查询效率的技术,它允许应用程序以非阻塞方式获取数据,从而提高用户体验。这种技术结合了存储过程、JavaScript以及数据库的内部机制,以实现高效、...
1. 数据库设计:首先需要在SQLServer中设计好数据库表,包括表名、字段名、数据类型、主键、外键等信息。 2. 生成C#实体类:使用提供的工具或源码,通过连接到SQLServer数据库,读取表结构信息,自动生成C#类。这些...
SQL Server 2000是微软公司推出的一款关系型数据库管理系统,它在企业级数据存储、管理和分析中扮演着重要角色。在这个“SQLServer2000数据库驱动包”中,包含的三个关键文件——mssqlserver.jar、msutil.jar和...
这个功能主要应用于SQL SERVER 2000、2005、2008这三个版本,意味着它兼容性较强,能够覆盖较早时期到较新的数据库系统。 1. **SQL Server Management Studio (SSMS)**:这是微软提供的用于管理SQL Server的主要...
SQL Server 2005是微软推出的一款关系型数据库管理系统,是SQL Server系列的一个重要版本。它在数据库管理、数据存储、数据处理等方面提供了广泛的功能,适用于中小型企业及开发人员进行数据管理和应用开发。本教程...
教你安装SQL Server ...虽然在 SQL Server 2005中文件的结构已经发生了改变,你仍然可以连接SQL Server 2000 的数据库。但是只有选择数据库的新格式,才能体验到SQL Server 2005 的新特性,你可以任意选择一种方式。
本实验主要围绕SQL Server 2005数据库的管理和操作展开,目的是让学生掌握数据库的创建、修改、查看、删除等基本操作,以及SQL Server Management Studio的使用。实验内容包括安装SQL Server 2005、启动和配置服务、...
外键处理:在 SQL Server 中,如果由两个列共同组成主键,而且一个子表将主键作为可为空值的外键来继承,就可能得到错误的数据。可在一个外键列中插入有效的值,但在另一个外键列中插入空值。然后,可添加一个数据表...
在SQL Server环境中,有时我们需要将一个数据库中的某个表复制到另一个数据库中,这可能是为了备份、数据迁移或创建测试环境等目的。根据提供的标题、描述和部分代码内容,我们可以整理出一套较为完整的操作流程和...