2016-09-12 79 views
0

我見過很多CREATE TABLE語句的例子,用於使用NOT NULL,UNIQUE,IDENTITY,AUTO_INCREMENT等聲明主鍵,但我是不確定使用自動增量主鍵列(int類型)設置表的最低要求是什麼。SQL Server中自動增量,唯一,不爲空主鍵的最低要求

所以我想這是我的問題:

什麼是設置一個主鍵,其自動遞增,是獨一無二的,並且不允許空值的最低要求?

+0

除非你打高爾夫球,否則更喜歡顯性而不是簡潔,往往是我的規則。除非你使用了一個奇怪的SQL Server版本,否則你不會因爲在你的SQL中包含一些額外的單詞而招致額外的許可成本。 –

+0

我很確定你沒有看到使用'auto_increment'的SQL Server的例子 –

回答

0

主鍵在定義上是唯一的。身份默認爲NOT NULL。因此,你可以使用下面的語法:

CREATE TABLE T1 
(
    Id int identity PRIMARY KEY 
) 

如果你想要一些有意義的名字,而不是PK__T1__3214EC0744F9FA13以上的自動分配,應按照此語法:

CREATE TABLE T2 
(
    Id int IDENTITY CONSTRAINT PK_Id PRIMARY KEY 
) 
0

如果您分配一個列爲主鍵,它自己使該列唯一,並且不允許該列中的NULL值。

然後進入身份識別。身份識別會爲每個插入到該表的列指定自動遞增數字。標識列應該是主鍵不是強制性的。

對於將標識列設置爲主鍵沒有這樣的最低要求。通常,如果沒有其他列唯一標識表中的特定記錄,我們將使用標識列。如果列是整數類型,則排序和索引將更具生產力。

在你的情況下,你可以簡單地添加一個列ID爲int作爲數據類型,將其設置爲標識並將主鍵分配給該列。

CREATE TABLE [YourTable] 
    (
     [ID] [int] IDENTITY (1,1) 
      CONSTRAINT [PK_ID] PRIMARY KEY CLUSTERED ([ID] ASC) 
    ) ON [PRIMARY] 
    GO 
相關問題