2011-09-14 36 views
13

是否可以自動增加SQL Server中的列而不是主鍵?SQL Server自動增加沒有主鍵的列

如果是這怎麼辦。

謝謝

+1

當然 - 該列只需要聲明爲「INT IDENTITY」(或BIGINT) - 就是這一切。沒有要求它成爲主鍵 - 沒有任何... –

+2

什麼限制你從......試圖? –

+0

@adrian:......請不要在您的生產系統上使用! :-) –

回答

25

是的。沒有要求將IDENTITY列作爲主鍵。

CREATE TABLE T 
(
X INT PRIMARY KEY, 
Y INT IDENTITY(1,1) 
) 

儘管我不確定這是否有用。如果你有一個你想用作PK的自然鍵,那麼你可能想要在代理替代鍵上設置一個唯一的約束。

爲了設置FK關係,SQL Server不關心列是否是PK,它只需要一個唯一的索引就可以了。

+1

這是一種簡單的方法來記住記錄添加到表中的順序。 –

+0

@拉里 - 當然是啊。沒想到這一點。 –

+1

@Larry,所以是一個默認(getdate())的CreatedDate,這更有意義 –

5

用IDENTITY關鍵字聲明列,並且不要在其上創建PRIMARY KEY約束。