SQL Server 2012 - 在主键上设置标识列

时间:2014-01-13 11:45:22

标签: sql-server tsql database-design

我正在尝试在数据库图表上将主键列设置为Identity = Yes。

我单击要设置的列,然后按F4以显示该列的属性。我通常滚动到Identity并将其更改为Yes但是现在不让我这样做。我认为这是因为列被设置为其他表中的外键?

我不想删除连接,无论如何我能做到吗?

以下是一些截图:

改变的关键:

enter image description here

F4(属性);更改被禁用:

enter image description here

1 个答案:

答案 0 :(得分:1)

以下是使用表格测试的示例:

create table test(id int, a int)

insert test values(3,1)
alter table test add id_new int identity(1,1)

go

SET IDENTITY_INSERT test ON
delete from test
output deleted.id, deleted.a, deleted.id into test(id, a, id_new)
SET IDENTITY_INSERT test OFF

go

alter table test drop column id

EXEC sp_rename 
@objname= 'test.id_new', 
@newname = 'id', 
@objtype = 'COLUMN'

declare @maxid int = (select max(id) from test)
DBCC CHECKIDENT(test, RESEED, @maxid);

您的列ID是标识列

你可以在这里测试一切正常:

insert test values(10)
select * from test