【问题标题】:How to remove identity on primary key column in SQL Server 2016 [closed]如何在 SQL Server 2016 中删除主键列上的标识 [关闭]
【发布时间】:2018-05-22 15:55:50
【问题描述】:

如何在 SQL Server 2016 中删除主键列上的标识?

【问题讨论】:

标签: sql-server-2016


【解决方案1】:

新建一列,复制数据,删除原列

alter table yourtable
add newcolumn int

update yourtable
set newcolumn=oldcolumn

alter table yourtable
drop column oldcolumn

【讨论】:

  • 谢谢丹尼尔。但我的身份列是其他表的外键。
  • 删除所有外键约束,然后在完成后将它们放回去 - 有关更多详细信息,请参阅上面 cmets 部分中的链接
  • 谢谢丹尼尔。
  • 如何关闭列上的标识并打开自动增量,因为列在其他表上被称为外键?
  • 另一个表上的外键是指向另一个表主键的值 - 删除所有指向您的身份列的外键,然后在完成后重新创建它们指向新列
【解决方案2】:

您不能删除主键列上的标识。默认情况下,当您选择一列作为主要列时,它会被创建。你需要做一些我不推荐在项目表上的替代方案。

1) 使用级联选项删除主键(您将丢失子表的链接)

2) - 您需要在同一个表中创建另一个名称不同的列。 - 将该数据复制到新创建的列中 - 删除主键列。
这将在被引用的子表中留下孤立记录。

【讨论】:

  • 这是不正确的,SQL Server 主键列默认不是标识字段。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-17
  • 2023-03-25
  • 1970-01-01
相关资源
最近更新 更多