2014-01-13 62 views
0

我想在數據庫關係圖上設置主鍵列爲標識=是。SQL Server 2012 - 在主鍵上設置標識列

我點擊了要設置的列,然後按下F4以將該列的屬性。我通常會滾動到Identity並將其更改爲Yes,但現在不讓我這麼做。我認爲這是因爲列被設置爲其他表中的外鍵?

我不想刪除連接,是否有反正我可以做到這一點?

下面是一些截圖:

的鍵來改變:

enter image description here

的F4(屬性);變化是禁用:

enter image description here

+0

您無法將現有列更改爲「IDENTITY」 - 您必須創建一個**新列**並將其設置爲'IDENTITY' –

+2

@marc_s - SSMS通常會允許您並生成重建表的腳本。這裏灰顯的原因是你不能把'uniqueidentifier'列作爲'identity'列。身份需要一個「int」或「numeric(x,0)」數據類型。 –

+2

@marc_s - 實際上,它將整個表複製到一個新的表中,然後刪除原稿並重命名副本。 –

回答

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