Sql server中的标识列

Bha*_*kar 6 sql sql-server

为什么Sql server不允许表中有多个IDENTITY列?任何具体原因.

Meh*_*ari 7

你为什么需要它?SQL Server 使用列跟踪每个表的单个值(当前标识值),因此每个表IDENTITY只能有一个标识列.


Sta*_*mer 2

身份列是数据库表中的一列(也称为字段),它:

  1. 唯一标识表中的每一行
  2. 由数据库生成的值组成

这很像 Microsoft Access 中的自动编号字段或 Oracle 中的序列。

标识列与主键的不同之处在于,它的值由服务器管理并且(极少数情况除外)不能修改。在许多情况下,标识列用作主键,但情况并非总是如此。

SQL Server 使用标识列作为键值来引用特定行。因此只能创建一个标识列。此外,如果没有显式声明标识列,Sql 服务器会在内部存储一个单独的列,其中包含每行的键值。如前所述,如果您希望多个列具有唯一值,您可以使用 UNIQUE 关键字。