【问题标题】:How do I remove an Identity completely如何完全删除身份
【发布时间】:2010-10-11 03:03:38
【问题描述】:

我目前正在对我们的数据模型进行一些更改,其中包括更改列(恰好是主键的一部分),使其不再是身份。有没有办法在实际删除和重新创建整个列或表的情况下做到这一点? SSMS 自动生成的代码就是这样做的,但我想知道是否有更简单的解决方案。

【问题讨论】:

    标签: sql sql-server tsql sql-server-2008


    【解决方案1】:

    您无法删除列的 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

    有意义吗?

    干杯,约翰

    【讨论】:

    • 这似乎与我通过谷歌找到的相符。由于这不是临时更改 IDENTITY_INSERT 对我没有帮助。
    • 也许这件事做起来很复杂的原因之一是让你重新考虑做这件事!通常不建议对数据库进行这种重构。
    猜你喜欢
    • 2021-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-12
    • 2011-06-27
    • 2017-10-13
    • 1970-01-01
    • 2023-03-25
    相关资源
    最近更新 更多