0

大约一周前,一些数据被导入到数据库表中。简单表:

Id INT PK NOT NULL IDENTITY Name VARCHAR(20)

现在,我今天注意到第一个 id 从 0 开始。问孩子,他在测试期间重新播种。所以第一个条目是零。是个意外。

我不确定如何最好地更新值。我怎样才能将所有内容都推高一个数字?令我痛苦的是,还有一些 FK 依赖项。如果我有级联更新,是否应该修复依赖关系?

另外,我应该从上到下更新每个数字(但是我这样做吗??)..例如。从最高数字开始,然后 +1。然后下去。

4

1 回答 1

4

首先,你为什么要强调?ID=0 完全有效,如果有点不寻常。(请注意,零不是 NULL

如果你真的想摆脱 0:

  • 添加一个虚拟记录,
  • 注意它的ID,
  • 如果有指向记录 0 的外键,则将它们更新为虚拟记录。
  • 删除该记录。(推进内部 ID 计数器)。
  • 只需将 ID 0 更改为该值。
于 2009-05-31T15:00:14.627 回答