【发布时间】:2016-09-17 03:02:54
【问题描述】:
我第一次使用SQL Server,我看到一个名为Is Identity的列属性。
这是什么意思?
将列属性标记为Is Identity = Yes有什么好处?
【问题讨论】:
标签: sql-server database properties
我第一次使用SQL Server,我看到一个名为Is Identity的列属性。
这是什么意思?
将列属性标记为Is Identity = Yes有什么好处?
【问题讨论】:
标签: sql-server database properties
这仅仅意味着该列使用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
)
它充当为每条记录递增的列的默认值。请注意,您还可以获取从 SCOPE_IDENTITY() 插入的值。不要使用@@IDENTITY,因为它已被贬值,并且在触发器或嵌套上下文的情况下可能返回错误的结果。
【讨论】:
指示标识列的标志 - 可用作自增列(推荐用于任何表)
它有很多含义,比如能够使用@@IDENTITY 或 SCOPE_IDENTITY() 等获取表中最后插入行的 id。
【讨论】:
相当于 MySQL 的 AUTO_INCREMENT 属性。通常用于主键列
【讨论】: