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

时间:2013-11-24 18:07:01

标签: sql sql-server sql-server-2005

我有一个IDENTITY(1,1)的列。所有行都已连续编号。我没有添加或删除任何行。我删除了此列上的标识属性。现在,我想要它回来。我想我可以重置它以与现有表中的种子=最大数字相同。

如果我这样做会出现任何问题吗?

1 个答案:

答案 0 :(得分:4)

来自MSDN SQL Server forum - 您有两个选择:

  1. 使用identity&创建一个新表删除现有表格
  2. 使用identity&创建一个新列删除现有列。
  3. *但是当这些列有任何约束/关系时要特别小心

    MSDN documentation中所述,有关在部署和架构更新期间保留数据的注意事项:

    更改表上标识列的属性,例如标识种子 - “需要数据运动”,在某些情况下,它可能会导致数据在执行同步期间丢失。

    本案例中的建议:“如果部署或更新脚本包含这些类型的更改,您可能需要手动修改它以保留数据”