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设计数据库及表结构的大神,在设计时加上主键,以避免其他不必要的数据操作和维护方面的麻烦事情发生。
分享到:
相关推荐
背景介绍对sqlserver做数据库同步的时候,由于医院服务器和数据库版本的限制,选择了用发布订阅处理数据库同步,但是这个方式只能处理有主键的表,对于无主键的表
查看起来慢的不行,备份的时候想把里面没用的东西删了,减少数据库文件的大小,但是不知道如何或者其中某个表的大小,后来经过一番努力终于找到如何查看SQL Server 2005 中数据表大小的方法了.本代码在SQL Server ...
例子程序实现了SQLServer2000数据库的表与Excel2003的表内容的相互转换。其中的代码可以只作极小的修改就可以使用。无编程基础者勿下!
在SQLServer2008上面成功附件SQLServer2005的方法
第2部分(第3~9章)是本书的重点,也是读者深入学习SQL Server 2005的基础,详细介绍了SQL Server 2005的安装和配置过程,如何创建和管理数据库、数据表,以及如何对数据进行查询、修改、输出等内容;第3部分(第10~14章)...
数据库自增列主键在数据库还原时百分百会出问题 为解决该问题特开发自定义式的主键 创建一个监控表,一个被调用的存储过程即可,推荐有存储过程编广泛使用的程序使用 调用方法 DECLARE @PKID CHAR(12)='' EXEC [dbo]....
SQL SERVER连接oracle数据库几种方法 查询oracle数据库中的表 在master数据库中查看已经存在的链接服务器 要在企业管理器内指定登录帐号
快捷方便,可查看sqlserver数据库每个表的使用情况,一次下载终身使用,此文件为sql语句格式,免费试用
opc服务器kepserver读取SQL Server数据库具体方法
Sql Server2000数据库同步方案详解 ,Sql Server2000数据库同步方案详解 ,Sql Server2000数据库同步方案详解
SQL Server和国产数据库之间数据移植研究.pdf
教你安装SQL Server ...虽然在 SQL Server 2005中文件的结构已经发生了改变,你仍然可以连接SQL Server 2000 的数据库。但是只有选择数据库的新格式,才能体验到SQL Server 2005 的新特性,你可以任意选择一种方式。
笔记是本人学习SQLServer一段时间后重新整理出来的,适合有一些入门基础的人学习。... SQL Server将数据导出SQL脚本的方法_sql.sql SqlDB.bat SQLServer2005无法用SQLServer身份登录.txt Sqlserver数据库总结.sql
资源名称:SQL Server 2005 一千万条以上记录分页数据库优化经验总结 资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
此doc文档详细介绍了Java程序通过JDBC连接SQLServer2000数据库的全过程和连接代码
一键生成Oracle、Sqlserver、Mysql 数据库表结构说明文档,文档输出类型支持word、PDF、html。原创作品绿色环保无污染
SQL Server2000示例数据库NorthWind的分析
数据库级别异步分页 javascript 通用分页存储过程 Sqlserver2005
5.掌握应用SQL Server Management Studio创建数据库的方法。 6.掌握应用SQL Server Management Studio修改和查看数据库的方法。 7.掌握应用SQL Server Management Studio删除数据库的方法。 8.掌握应用Transact-SQL...
mfc ado连接sqlserver2005数据库的实例,以及自己编代码时的一些体会