2

我正在“清理”数据库并需要同步 IDENTITY 列。我正在使用存储过程来处理数据并将其从一个表镜像到下一个表(在清理并更正数据类型之后)。在将来的某个时候,我会想切断旧表并只使用新表,我的问题是如何让 IDENTITY 字段在它们都在使用时保持同步......一旦旧表被删除新的将需要继续自动递增和重建/更改它以更改 IDENTITY 字段不是一种选择。这是可能的还是有更好的方法来解决这个问题?

我的另一个想法是创建一个查找表来存储两个表的 ID 列,并且任何时候在新表中插入旧 ID 和新 ID 并将它们插入到查找表中。一旦旧桌子不碍事,这有点乱。

4

2 回答 2

3

去过也做过。将旧 id 作为 FK 放入新表中。在删除旧表之前删除该列。

于 2010-12-02T19:09:22.257 回答
1
  1. 将新表的标识设置为非标识字段。
  2. 修改您的数据填充过程以使用旧表的标识值填充新表上的非标识字段。
  3. 在切换时,将新字段切换为自动增量并相应地设置种子编号
于 2010-12-02T19:10:21.073 回答