sqlserver 没有自增列 如何避免实现增量读取
sqlserver 没有自增列如何处理实现增量读取sqlserver 表没有自增列如何处理实现增量读取 ,想实现每次从已
sqlserver 没有自增列 如何处理实现增量读取 sqlserver 表没有自增列 如何处理实现增量读取 ,想实现每次从已有的这个库中读取一段,下次只读取比上次大的数据,(比如 某个字段 > 上次的值 ),想用时间但是有重复的时间不好弄了。。。 sql如下
USE [test] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO CREATE TABLE [dbo].[test]( [goodsNo] [char](8) NOT NULL, [goodsName] [char](8) NULL, [Type] [char](8) NULL, [Num] [char] NULL, [InputMan] [char](8) NULL, [Date] [datetime] NULL, ) ON [PRIMARY] GO SET ANSI_PADDING OFF有这个ON [PRIMARY]是不是说明 主文件上有自增的字段?大牛们帮忙看看....
[解决办法] 1、ON [PRIMARY]只是说明这个表创建在primary文件组上,也就是默认的文件组。不用管太多。
2、不是只有自增ID才能找到增量值,有时候自增反而是一种危险。
3、最重要你要找到表的主键。而业务上怎么判断一个主键,那恐怕只能设计的人和熟悉业务的人才知道了。
4、我现在假设[goodsNo] ,[goodsName] 这两个联合起来可以唯一标识一条数据,也就是联合主键,然后给你一个例子, 你那个:
SELECT * FROM test a WHERE NOT EXISTS ( SELECT 1 FROM test b WHERE a.[goodsNo] = b.[goodsNo] AND a.[goodsName] = b.[goodsName] ) 5、没有自增你可以自己加个自增上去啊,如果是05以上的版本:
SELECT row_number() OVER ( ORDER BY GETDATE() ) id , * FROM test 这样就有了一个ID列了。
[解决办法] 类似于使用ROW_NUMber()分页功能。
[解决办法] 引用: 引用: 1、ON [PRIMARY]只是说明这个表创建在primary文件组上,也就是默认的文件组。不用管太多。 2、不是只有自增ID才能找到增量值,有时候自增反而是一种危险。 3、最重要你要找到表的主键。而业务上怎么判断一个主键,那恐怕只能设计的人和熟悉业务的人才知道了。 4、我现在假设[goodsNo] ,[goodsName] 这两个联合起来可…… 那如果可以改表的话,先创建一个一模一样的实体表,然后加上一列自增列,然后把数据从源表导过去。再删除源表,最后重命名新表为源表名字。
[解决办法] 用goodsNo作匹配,時間會有重複?