我有一个表,它已经有一个主键,数据类型为integer
。问题是插入行后列未设置为自动递增。我必须检查最大值然后加1以手动自动增加到列。有没有办法改变列以将主键设置为自动递增?我要添加数百条记录并手动添加id是一项相当繁琐的任务。我不能删除列,因为存在已存在的ID。提前谢谢。
答案 0 :(得分:1)
您无法将现有列的定义更改为标识。在保留任何现有ID的同时,最接近的是<; p>
Set Identity_Insert On
)像这样的东西
Create Table Table1 (id int, Name varchar(20))
Insert Into Table1 values (1,'Name 1')
Insert Into Table1 values (2,'Name 2')
Create Table Table2 (Id int identity, Name varchar(20))
Go
Set Identity_Insert Table2 on
Go
Insert into Table2 (Id, Name) Select Id,Name from Table1
Set Identity_Insert Table2 Off
Go
Exec sp_Rename Table1, TableOld, 'Object'
Exec sp_Rename Table2, Table1, 'Object'
Insert into Table1 (Name) values ('Name 3')
答案 1 :(得分:-4)
使用此: