【问题标题】:Alter Primary key constraint更改主键约束
【发布时间】:2015-12-04 09:51:56
【问题描述】:

在我的表中,我在 3 列上有主键 (name, dept, MobNo)。

现在我想将其更改为两列 (Name, MobNo)。

有什么方法可以改变主键约束而不删除它?

我知道我可以删除旧约束并创建新约束,但不删除旧约束是否可以更改它?

【问题讨论】:

  • 不,没有“捷径”——您需要删除所有引用此 PK 约束的外键,删除 PK 约束,重新创建它,然后重新创建所有引用 FK 约束。没有办法解决这个问题
  • @marc_s:好的..谢谢

标签: sql sql-server database


【解决方案1】:

唯一也是一种方法是使用 Alter 表删除约束,然后重新创建它。

ALTER TABLE <Table_Name>
DROP CONSTRAINT <constraint_name>

ALTER TABLE <Table_Name>
ADD CONSTRAINT <constraint_name> PRIMARY KEY (<Column1>,<Column2>)

【讨论】:

  • 当然:BEFORE你删除了约束,所有引用该表的外键约束也必须被删除,并且必须重新创建那些 FK 约束新PK到位后.....
【解决方案2】:

如果您(可能)对该 PK 有依赖关系,则还必须删除它们并重新创建它们。要让所有这些自动完成,从 SSMS 更容易右键单击表格,选择 Design,然后单击左上角工具栏中名为 Manage indexes and Keys 的按钮。从那里您进行更改,最后,您有两个选择:

  • 您关闭并保存您的更改(它工作正常,但您没有学到任何东西)
  • 改为单击Generate change script,以便稍后检查和执行脚本

(至少在我的 2014 版 SSMS 中它是这样工作的)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-29
    • 1970-01-01
    • 1970-01-01
    • 2012-02-04
    • 1970-01-01
    相关资源
    最近更新 更多