将Identity列从INT更新为BigInt

时间:2014-10-31 13:44:29

标签: sql-server

我有一个具有Identity字段并且是INT数据类型的表。该列中的最大值为2,143,352,421,因此夜间作业崩溃。

我需要将其更改为BigInt。但是,此特定列是主键,具有关联的外键。它还有相关的索引。

我将此数据类型转换为BigInt的过程是:

  • 取消关联主键。

  • 更改表,更改列以将数据类型更改为BigInt。

  • 重新关联主键关系

如何撤消主键,所以我在表中保留记录?

这是否像删除主键一样简单,将列类型更改为bigint,然后重新建立PK?

感谢。

1 个答案:

答案 0 :(得分:3)

这让我有点傻笑,因为我的公司在几个月前完成了同样的事情。这就是我们所做的:

  • 删除引用PK的所有FK
  • 将这些FK列更改为bigint(事情发生后的痛苦教训)
  • 删除PK索引
  • 将PK列更改为bigint
  • 重新创建PK
  • 重新创建FK