【问题标题】:How to replace Column char(10) to int auto_increment in SQL 2008 table?如何在 SQL 2008 表中将 Column char(10) 替换为 int auto_increment?
【发布时间】:2017-12-10 13:19:59
【问题描述】:
我正在处理我的一张表过去使用 Fox Pro 的项目。他们使用服务器端编程语言 (ColdFusion) 为表中的每条记录创建唯一 ID。使用 SQL 自动增量字段,我不需要这种技术,我想将我的键列设置为 INT 自动增量。我想知道修改表中键列的最佳方法是什么?这是我的表格设计示例:
Column Name Data Type Allow Nulls
im_key char(10) No
我不能简单地将类型更改为 INT 并设置自动增量,因为我当前的类型是 char。如果有人可以提供帮助,请告诉我。谢谢。
【问题讨论】:
标签:
sql
sql-server-2008
auto-increment
【解决方案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列当前作为主键、外键,在函数、过程或者其他任何方式中,都会变得很麻烦,很快……