0
我想在數據庫關係圖上設置主鍵列爲標識=是。SQL Server 2012 - 在主鍵上設置標識列
我點擊了要設置的列,然後按下F4以將該列的屬性。我通常會滾動到Identity並將其更改爲Yes,但現在不讓我這麼做。我認爲這是因爲列被設置爲其他表中的外鍵?
我不想刪除連接,是否有反正我可以做到這一點?
下面是一些截圖:
的鍵來改變:
的F4(屬性);變化是禁用:
我想在數據庫關係圖上設置主鍵列爲標識=是。SQL Server 2012 - 在主鍵上設置標識列
我點擊了要設置的列,然後按下F4以將該列的屬性。我通常會滾動到Identity並將其更改爲Yes,但現在不讓我這麼做。我認爲這是因爲列被設置爲其他表中的外鍵?
我不想刪除連接,是否有反正我可以做到這一點?
下面是一些截圖:
的鍵來改變:
的F4(屬性);變化是禁用:
下面是一個使用表測試的例子:
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
您無法將現有列更改爲「IDENTITY」 - 您必須創建一個**新列**並將其設置爲'IDENTITY' –
@marc_s - SSMS通常會允許您並生成重建表的腳本。這裏灰顯的原因是你不能把'uniqueidentifier'列作爲'identity'列。身份需要一個「int」或「numeric(x,0)」數據類型。 –
@marc_s - 實際上,它將整個表複製到一個新的表中,然後刪除原稿並重命名副本。 –