sql2000表内每生成一条数据后ID都是2 怎么修改为从1自动增长
第1个回答 2019-07-23
打开SQL Server,连接数据库,找到目标表,右键,然后点击“设计”。
单击列(或其他需要设置的为int的列),然后在下方“列属性”中找到“标识规范”,展开。
在(是标识)下拉栏中选择“是”,然后设置“标识增量”(递增量)和”标识种子“(初始数)
这样设置之后,再保存目标表即可
参考以及图片:
追问改完后 再新增数据 就新增不进去了 不知怎么回事?
追答是否有报错截图呢
目前可以从以下两个方面查看原因:
第一,检查修改后的ID列的数据是不是递增的
第二,你的插入语句,可以省略ID列,让系统自动递增
如果没有解决,提供下报错截图吧
第2个回答 2019-07-23
列名是ID,应该是主键了,但是为什么你没设置成主键呢?居然还有重复的ID值。
如果这个表A,没有多少数据,建议你重新创建一个临时表B,表结构与这个表一致,把数据都复制到B表中,然后删除表A中的数据,然后
alter table A drop column ID
alter table A add ID int identity(1,1)
然后将B表中的数据重新插入到A表。
或者另外一种方法,在往A表中插入数据时,ID列的插入值,调用一个函数
insert into A (ID,XX,XX,XX) values (select (max(id)+1) from A,xx,xx,xx)
这样每次都从现有数据中,获取最大值然后加1,两种方式各有利弊,自己权衡吧。本回答被网友采纳
如果这个表A,没有多少数据,建议你重新创建一个临时表B,表结构与这个表一致,把数据都复制到B表中,然后删除表A中的数据,然后
alter table A drop column ID
alter table A add ID int identity(1,1)
然后将B表中的数据重新插入到A表。
或者另外一种方法,在往A表中插入数据时,ID列的插入值,调用一个函数
insert into A (ID,XX,XX,XX) values (select (max(id)+1) from A,xx,xx,xx)
这样每次都从现有数据中,获取最大值然后加1,两种方式各有利弊,自己权衡吧。本回答被网友采纳
第3个回答 2019-07-23
identity(1,1) parmary key not null 将这个字段值设置成这样就可以了。不要个给默认值。