我第一次使用SQL Server,我看到一个列属性称为Is Identity.

这是什么意思?

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

推荐答案

它只是表示列使用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,因为它已折旧,在使用触发器或嵌套上下文的情况下可能会返回错误的结果.

Database相关问答推荐

MongoDB事务,回调API方法

DynamoDB 扫描 - 具有相同分区键的项目按顺序返回

当某些 node 死亡时,mongo 副本集选举如何表现?

prisma 中的隐式或显式多对多关系

如何高效地存储 100 万个单词并通过starts_with、contains 或ends_with 进行查询?

在 ScyllaDB 中查询 100 亿行(高基数)的效率

当我们需要触发程序的返回值时?

什么是Open Schema的数据库?

MySQL 语法 LIMIT x, y 的 T-SQL 类似的功能是什么?

android 应用程序与 web 服务通信的安全性

在 SQL 数据库之间共享数据

我什么时候应该考虑使用内存数据库,需要注意什么问题?

如何使用 Hibernate 在不丢失数据的情况下更新数据库模式?

在 postgresql 中将 varchar 列升级为枚举类型

cURL 和 PHP 显示1

使用默认路径中的文件创建数据库

如何在实体框架中使用字符串属性作为主键

Rails 新手,设置 db 然后运行 ​​rake db:create/migrate

Twisted + SQLAlchemy 和最好的方法

将查询限制为一条记录会提高性能吗