【发布时间】: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