【问题标题】:Is there a way to turn off identity increment in SQL Server? [duplicate]有没有办法在 SQL Server 中关闭标识增量? [复制]
【发布时间】:2022-01-08 10:21:39
【问题描述】:

我偶然创建了一个对 null 不友好的列,尽管我看到了一个错误,但我尝试了几次添加 null;没用。

但是现在我的主键ID_Phisical 现在很奇怪。我必须创建一个新表还是有办法将其恢复为 1 而不是 20?

【问题讨论】:

  • TRUNCATE 还会重置身份种子(并且还会从表中删除所有数据)
  • 您的身份价值无关紧要。如果这很重要,那么您可能不应该使用身份。我还建议你正确拼写 Physical,否则它会让你发疯。并且永远不要存储一个人的年龄,除非它是出于历史目的(比如他们上次访问时的年龄或类似的)。而是存储生日并在需要时计算年龄。
  • 您的IDENTITY 并不“奇怪”,它按预期工作。每次尝试INSERT 一行时,IDENTITY 的值都会增加,INSERT 是否失败并不重要。您尝试 INSERT 多行未通过约束(因为该列不是 NULL),因此未插入该行,但仍使用 IDENTITY 值,因为它应该是。一点都不奇怪。事实上,如果你的IDENTITY 的值没有跳过失败的INSERT 语句的值,那会很奇怪。

标签: sql sql-server tsql


【解决方案1】:

要更改重置身份,请使用命令

DBCC CHECKIDENT ('[TestTable]', RESEED, 0);

【讨论】:

    猜你喜欢
    • 2022-01-26
    • 1970-01-01
    • 1970-01-01
    • 2011-01-22
    • 1970-01-01
    • 2020-11-24
    • 2019-12-19
    • 1970-01-01
    • 2011-09-09
    相关资源
    最近更新 更多