【发布时间】:2018-05-17 06:02:53
【问题描述】:
在 SQL Server 2008 Express 中删除行后是否可以重用标识字段值?这是一个例子。假设我有一个以 Id 字段作为主键(身份)的表。如果我添加五行,我将有这 5 个 Id:1、2、3、4、5。如果我要删除这些行,然后再添加五行,新行将有 Id:6、7、8, 9, 10. 可以让它从 1 重新开始吗?
我是否必须从另一个表中删除数据才能完成此操作?感谢您的帮助。
【问题讨论】:
-
为什么要这个要求?
-
只是好奇。我是编程初学者。
-
身份列应被视为恰好适合数字列的不透明 blob。系统保证使它们独一无二。只要这就是你使用它们的全部,你会没事的。一旦你开始关心实际数值,你就会开始出错。
-
别这样。你正在让自己承受巨大的伤害。
-
有可能但毫无意义。正如 Damien 所写 - 标识列(实际上是每个代理键)不应该具有业务意义值。它们的唯一目的是提供易于使用的行标识符。请注意,它们也应该不替换自然键 - 当使用标识列作为表的主键时,您还必须在组成的列(或列)上提供唯一索引(或约束)你的天然钥匙。
标签: sql sql-server