【问题标题】:After I change the identity specification to "Yes", why does it change back to "No" in SQL Server? [duplicate]将身份规范更改为“是”后,为什么在 SQL Server 中又更改回“否”? [复制]
【发布时间】:2019-05-03 17:31:18
【问题描述】:

我需要将 3 列(idUser、idLab、idProfile)设置为身份,但是当我更改其中一列时,其他所有列都将身份设置为“否”,只有最新的一列设置为“是”。

已经检查过它的数据类型并且全部设置为“int”

【问题讨论】:

  • 每个表只能有一个标识列。为什么需要多个?
  • 不明白为什么你需要多个。它们都将具有相同的值,因此复制数据毫无意义。您实际上想在这里实现什么目标?
  • 一个表中只能有一个标识列。但是,如果您想在表中为您生成多列数字,您可以使用 SQL Server 对象SEQUENCE 为您生成值。
  • Foreign keys 可能是您正在寻找的东西,也许?
  • 嗯,是的,您不应该在两个表上生成它们并保持它们同步。

标签: sql sql-server tsql


【解决方案1】:

这是因为您的表中只能有一个列作为标识列。 也请参考Can a sql server table have two identity columns?

我们确实不需要一个表中的多个标识列,因为我们总是可以从一个标识列中获取其他两列的值。这里,在这种情况下,idLab 和 idProfile 的值与 idUser 相同。

所以,如果我将 idUser 设置为标识列,对我来说应该就足够了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-29
    • 2016-01-04
    • 1970-01-01
    • 2011-01-09
    • 2014-04-28
    • 1970-01-01
    相关资源
    最近更新 更多