"身份"列属性在SQL Server中的含义是什么?

Niy*_*yaz 21 database sql-server properties

我第一次使用SQL Server,我发现列属性名为Is Identity.

这是什么意思?

将列属性标记为Is Identity = Yes有什么好处?

God*_*eke 29

它只是意味着该列使用该Identity(seed, increment)函数来提供主键的值(通常).它也被称为"自动编号".下面的第二行是一个例子:

CREATE TABLE Table (
TableID bigint IDENTITY(1,1) NOT NULL,
DateTimeStamp datetime NOT NULL DEFAULT (getdate()),
Data nvarchar(100) NOT NULL,
CONSTRAINT PK_Table PRIMARY KEY CLUSTERED 
(
    TableID ASC
)
Run Code Online (Sandbox Code Playgroud)

它充当为每个记录递增的列的默认值.请注意,您还可以从SCOPE_IDENTITY()中插入值.不要使用@@ IDENTITY,因为它已被折旧,并且在触发器或嵌套上下文的情况下可能返回错误的结果.