如何在sql中更新主键值?

如何在sql中更新主键值?,sql,sql-server,sql-update,primary-key,Sql,Sql Server,Sql Update,Primary Key,我有一个Countryid列的Countryid表,我意外删除了值为1的Countryid,现在在状态表中有一个值为Countryid=1的列,用于根据国家id获取记录状态。 我再次插入了国家,但它的id不同 因此,如何在CountryId的country表中再次更新主键从2到的值?您的问题的直接答案是使用set identity\u insert off。最好的出发点是从一开始 更重要的是,有一种非常简单的方法可以避免将来出现这些问题:使用显式声明的外键关系。如果您有外键约束: alter t

我有一个Countryid列的Countryid表,我意外删除了值为1的Countryid,现在在状态表中有一个值为Countryid=1的列,用于根据国家id获取记录状态。 我再次插入了国家,但它的id不同
因此,如何在CountryId的country表中再次更新主键从2到的值?您的问题的直接答案是使用set identity\u insert off。最好的出发点是从一开始

更重要的是,有一种非常简单的方法可以避免将来出现这些问题:使用显式声明的外键关系。如果您有外键约束:

alter table state
    add constraint fk_state_country foreign key (countryId) references country(countryId);

那么就不允许删除。

您的问题的直接答案是使用set identity\u insert off。最好的出发点是从一开始

更重要的是,有一种非常简单的方法可以避免将来出现这些问题:使用显式声明的外键关系。如果您有外键约束:

alter table state
    add constraint fk_state_country foreign key (countryId) references country(countryId);

那么就不允许删除。

只需将状态表的Countryid列更新为2,其中Countryid为1。但我在状态表中也有数千个in-others表,它们的Countryid=1可能与只需将状态表的Countryid列更新为2(其中为1)的情况相同。但我在状态表中也有数千个in-others表countryid为1的表可能重复