2012-08-10 67 views
8

我創建了表並希望更改該表。我想添加一個主鍵和identity(1,1)更改主鍵和標識的表列

我可以應用主鍵但應用標識會給出錯誤。有什麼缺失?

ALTER TABLE MyTable ADD PRIMARY KEY (Id) 

如何添加標識以及主鍵?

回答

18

您無法更改數據庫中現有列的定義,以添加IDENTITY屬性(或將其刪除)。你必須創建一個新IDENTITY屬性:

ALTER TABLE MyTable ADD NewID int IDENTITY(1,1) not null 

不幸的是,你不就能夠到老ID值分配給這個新列。如果要分配ID值,然後讓IDENTITY接管,那麼最好使用所需結構創建新表,然後從舊錶導入數據(可以使用IDENTITY_INSERTIDENTITY分配值柱)。

如果需要,您可以刪除舊錶並重命名新表。

+0

是的,非常感謝。我試圖給我的存在專欄添加身份。 – 2012-08-10 08:19:11

+1

[您可以將其作爲僅用於元數據的更改](http://stackoverflow.com/q/6084572/73226) – 2012-08-10 10:16:57

+2

如果還需要**主鍵**,則ALTER TABLE LookupStates ADD Id int IDENTITY(1, 1)PRIMARY KEY not null' – 2014-08-12 11:46:31