簡體   English   中英

SQL Server中自動遞增,唯一,非空主鍵的最低要求

[英]Minimum Requirements for Auto Increment, Unique, Not Null Primary Key in SQL Server

我已經看到許多CREATE TABLE語句用於使用NOT NULL,UNIQUE,IDENTITY,AUTO_INCREMENT等聲明主鍵的示例,但是我不確定使用自動增量主鍵設置表的最低要求是什么鍵列(類型為int)。

所以我想這是我的問題:

設置自動遞增,唯一且不允許為空的主鍵的最低要求是什么?

根據定義,主鍵是唯一的。 身份默認為NOT NULL 因此,您可以使用以下語法:

CREATE TABLE T1
(
    Id int identity PRIMARY KEY
)

如果您想要一些有意義的名稱,而不是上面自動分配的PK__T1__3214EC0744F9FA13,則應遵循以下語法:

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

如果您要分配一列作為主鍵,它將使該列本身成為唯一鍵,並且該列將不允許使用NULL值。

然后進入身份。身份將為該表的每次插入將自動增量編號分配給該列。 標識列不是主鍵不是強制性的。

對於將標識列設置為主鍵沒有最低要求。 通常,如果沒有其他列可以唯一標識表中的特定記錄,我們通常會使用Identity列。如果該列是整數類型,則排序和索引編制會更加高效。

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM