如何将列更改为IDENTITY列并保留数据?

3

我有一个自增列,其属性为IDENTITY(1,1),所有行都按顺序编号。我没有添加或删除任何行。我现在想重新设置它的自增属性。我认为我可以通过将种子值设置为现有表中最大的数字来重新设置自增列。

如果我这样做会出现什么问题吗?


我建议在测试数据库上尝试它。 - Dan Bracuk
1个回答

4

来自MSDN SQL Server论坛 - 你有2个选项:

  1. 创建一个带有Identity属性的新表并删除现有表。
  2. 创建一个带有Identity属性的新列并删除现有列。

*但是,当这些列具有任何约束关系时,请特别注意。

MSDN文档中提到的,在部署和模式更新期间保留数据时需要考虑以下事项:

对表上Identity列的属性进行更改(例如Identity Seed)- "需要移动数据",在某些情况下,执行同步时可能会导致数据丢失。

在这种情况下建议:手动修改更新脚本以保留数据。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接