【问题标题】:What does "Is Identity" column property mean in SQL Server?SQL Server 中的“Is Identity”列属性是什么意思?
【发布时间】:2016-09-17 03:02:54
【问题描述】:

我第一次使用SQL Server,我看到一个名为Is Identity的列属性。

这是什么意思?

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

【问题讨论】:

    标签: sql-server database properties


    【解决方案1】:

    这仅仅意味着该列使用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,因为它已被贬值,并且在触发器或嵌套上下文的情况下可能返回错误的结果。

    【讨论】:

      【解决方案2】:

      指示标识列的标志 - 可用作自增列(推荐用于任何表)

      它有很多含义,比如能够使用@@IDENTITY 或 SCOPE_IDENTITY() 等获取表中最后插入行的 id。

      尝试: Understanding Identity Columns

      【讨论】:

      • 我用更多信息更新了评论。不要忘记投票给答案。谢谢
      • 不要使用@@IDENTITY。这是不可靠的,如果表上有一个触发器将数据放入另一个具有标识列的表中,@@IDENTITY 将返回错误的值。
      【解决方案3】:

      相当于 MySQL 的 AUTO_INCREMENT 属性。通常用于主键列

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-09-27
        • 1970-01-01
        • 2019-09-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-05-02
        • 2011-04-02
        相关资源
        最近更新 更多