是的,是自增加列你用的sql server中的identity(1,1) 这种自增列吗我做了一个实验,没有出现你说的这种情况:--drop table testcreate table test(serial int identity(1,1) ,inputdata int)insert into test(inputdata) values(22) go--先删除数据 delete from test--然后在插入数据 insert into test(inputdata) values(22) select * from test /* serial inputdata 2 22 */
还是没有你说的问题:create table test(serial int identity(1,1) ,inputdata int) goinsert into test(inputdata) values(22) go 100--先删除中间的数据 delete from test where serial in( 50, 55,58) --然后在插入数据 insert into test(inputdata) values(22) --查询不到数据 select * from test where serial in( 50, 55,58) /**/
2000
3555
3556
3557
2004
.
.
.
3558
3559
其中的2001-2004 是插入3555前删除掉了, 所以后来插入3555记录时插到了原来2001记录的位置
go--先删除数据
delete from test--然后在插入数据
insert into test(inputdata) values(22)
select * from test
/*
serial inputdata
2 22
*/
还是没有你说的问题:create table test(serial int identity(1,1) ,inputdata int)
goinsert into test(inputdata) values(22)
go 100--先删除中间的数据
delete from test where serial in( 50, 55,58)
--然后在插入数据
insert into test(inputdata) values(22)
--查询不到数据
select * from test where serial in( 50, 55,58)
/**/
哦,把serial字段,建个聚集索引就行,这样,返回的数据,应该就按照顺序来拍了