【发布时间】:2010-10-11 03:03:38
【问题描述】:
我目前正在对我们的数据模型进行一些更改,其中包括更改列(恰好是主键的一部分),使其不再是身份。有没有办法在实际删除和重新创建整个列或表的情况下做到这一点? SSMS 自动生成的代码就是这样做的,但我想知道是否有更简单的解决方案。
【问题讨论】:
标签: sql sql-server tsql sql-server-2008
我目前正在对我们的数据模型进行一些更改,其中包括更改列(恰好是主键的一部分),使其不再是身份。有没有办法在实际删除和重新创建整个列或表的情况下做到这一点? SSMS 自动生成的代码就是这样做的,但我想知道是否有更简单的解决方案。
【问题讨论】:
标签: sql sql-server tsql sql-server-2008
您无法删除列的 Identity 属性而不删除它。
可能的解决步骤是:
(a) 添加新列
(b) 使用标识列值更新列
(c) 删除标识列。
Alter Table Tablename Add newColumnname int
Update Table set newColumnname =IdentityColumn
Alter Table TableName Drop IdentityColumnName
注意:如果您是暂时关闭标识属性,请检查 Set IDENTITY_INSERT TableName ON Command
有意义吗?
干杯,约翰
【讨论】: