我已经看到很多CREATE TABLE语句的例子用于使用NOT NULL,UNIQUE,IDENTITY,AUTO_INCREMENT等声明主键,但我不确定设置a的最低要求是什么具有自动增量主键列的表(类型为int)。
所以我猜这是我的问题:
设置自动递增的主键的最低要求是什么,是唯一的,并且不允许空值?
答案 0 :(得分:1)
根据定义,主键是唯一的。身份默认为NOT NULL
。因此,您可以使用以下语法:
CREATE TABLE T1
(
Id int identity PRIMARY KEY
)
如果您想要一些有意义的名称,而不是上面自动分配的PK__T1__3214EC0744F9FA13,您应该遵循以下语法:
CREATE TABLE T2
(
Id int IDENTITY CONSTRAINT PK_Id PRIMARY KEY
)
答案 1 :(得分:0)
如果您正在将列指定为主键,那么它将自己使该列唯一,并且它不允许该列中的NULL值。
然后开始识别..身份将为列的每个插入分配自动增量数字。标识列不应该是主键。
将标识列设置为主键没有这样的最低要求。通常,如果没有其他列唯一标识表中的特定记录,我们将转到Identity列。如果列是整数类型,则排序和索引将更有效。
在您的情况下,您只需添加一个以int作为数据类型的列ID,将其设置为identity并将主键分配给该列。
CREATE TABLE [YourTable]
(
[ID] [int] IDENTITY (1,1)
CONSTRAINT [PK_ID] PRIMARY KEY CLUSTERED ([ID] ASC)
) ON [PRIMARY]
GO