SQL自增列的疑问?

发布时间:2024-05-15 12:49 发布:上海旅游网

问题描述:

我在SQL数据库表中定义了一个自增列。比如,我输入10条记录。自增列的内容为1到10。但是,我把这10条记录删除后,再次输入10条记录,自增列
的内容就为11到20了。为什么不是再次从1到10呢?
还有就是SQL的表,可以一共保存多少条记录?
还请各位大侠指点!谢谢!

问题解答:

数据库原有ID字段,是自增列的,后来把数据全删除后,想让ID自增列从1开始算起

方法1:

1.dbcc checkident('test',reseed,0) ///DXJ: 很牛!!
2.insert into test values(55)

select * from test

显示结果:

id msum

1 55

方法2:

SET IDENTITY_INSERT

允许将显式值插入表的标识列中。

语法:

SET IDENTITY_INSERT [ database_name . [ schema_name ] . ] table { ON | OFF }

set identity_insert dbo.test on

test是表名

注意:
运用set identity_insert dbo.test on后,insert into时,必须要把需要插入记录的字段写上,如:

insert into test(id,msum)values(1,55)

insert into test(id,msum)values(2,55)

下面的语句的写法是错误的:

insert into test values(55)

insert into test values(1,55)

保持列名不变很简单啊,删除原来那列,加上一个自增列,名字和原来一样即可:

Alter table talbeName Drop Column ColumnName

Alter table talbeName Add ColumnName Int IDENTITY(1,1)

一楼说的方法太麻烦了吧。其实也可以这样实现:
第一步,新建一个临时自增列
第二步,删除原来的自增列
第三步,吧新建的子增列重命名成原先的子增列

至于SQLServer的容量,确切的说是受制于你的硬盘大小,一个表放上亿条记录没有问题,不过数据量大的时候执行效率会降低。

是这样的,自增都这样,想从1开始再建一表吧,至于最多记录数,这就要看你用什么数据库了

当你把10条记录删除后 吧自动列的自动也去掉 保存

然后在重新给自动列加上自动

再插入 就是从1开始了

热点新闻