如何在SQL 2008表中将列char(10)替换为int auto_increment?

时间:2017-07-06 13:34:57

标签: sql sql-server-2008 auto-increment

我正在研究我的一张桌子过去使用过Fox Pro的项目。他们使用服务器端编程语言(ColdFusion)为表中的每条记录创建唯一的ID。使用SQL自动增量字段我不需要这种技术,我想将我的键列设置为INT自动增量。我想知道在我的表中修改键列的最佳方法是什么?这是我的表设计的例子:

Column Name  Data Type  Allow Nulls
im_key       char(10)   No

我不能简单地将类型更改为INT并设置自动增量,因为我当前的类型是char。如果有人可以提供帮助,请告诉我。谢谢。

1 个答案:

答案 0 :(得分:1)

您可以添加新列im_key_ident,将其设置为identity。重命名旧列:sp_rename 'table_name.im_key', 'im_key_old', 'COLUMN';。最后,您可以重命名新列:sp_rename 'table_name.im_key_ident', 'im_key', 'COLUMN';。您可以选择保留或删除旧列。

如果im_key列当前用作主键,外键,功能,程序或任何其他方式,它将变得非常麻烦,非常快......