主键更改强制外键更改

bun*_*ink 0 sql t-sql sql-server sql-server-2008

我有一个问题我正在使用现有的SQL Server 2008数据库:我需要偶尔更改表中某些现有记录的主键值.不幸的是,大约有30个其他表具有对该表的外键引用.

更改主键和相关外键的最优雅方法是什么?

我不是在可以更改现有密钥结构的情况下,因此这不是一个选项.此外,随着系统的扩展,更多表将与此表相关,因此可维护性非常重要.我正在寻找最优雅和可维护的解决方案,非常感谢任何帮助.到目前为止,我一直在考虑使用存储过程或触发器,但在向错误的方向前我想要一些建议.

谢谢!

Lar*_*tig 7

当您说"我不在可以更改现有密钥结构的情况下"时,您是否可以将ON UPDATE CASCADE选项添加到外键?这是处理这种情况的最简单方法 - 无需编程.