我正在使用一个传统的SQL Server数据库,其中有一个核心表格具有糟糕的主键。该键是
这是一个巨大的数据库,我们正在逐步升级它。我们希望将对其他组件写入的表的更改最小化。我认为我可以通过以下方式更改表格而不会破坏任何内容:
1.向表中添加新的Id列并使其可空 2.填充唯一整数并使其
第3项非常麻烦。由于这是一个核心表,有许多其他表与之具有外键约束。要删除现有的主键,似乎必须先删除所有这些外键约束,然后再创建它们。 是否有更简单的方法来做到这一点,还是我只能编写脚本?
NVARCHAR(50)
类型,并包含基于表中各种事物生成的应用程序字符串。出于明显的原因,我想用自动递增(identity)INT
列替换此键。这是一个巨大的数据库,我们正在逐步升级它。我们希望将对其他组件写入的表的更改最小化。我认为我可以通过以下方式更改表格而不会破坏任何内容:
1.向表中添加新的Id列并使其可空 2.填充唯一整数并使其
NOT NULL
3.删除现有的主键,同时确保该列仍具有唯一性约束
4.将新的Id列设置为新的主键和identity第3项非常麻烦。由于这是一个核心表,有许多其他表与之具有外键约束。要删除现有的主键,似乎必须先删除所有这些外键约束,然后再创建它们。 是否有更简单的方法来做到这一点,还是我只能编写脚本?