有没有一种聪明的方法可以将数字添加到关系数据库中的PK身份列中,而无需总灾难?
|
这与理想情况相去甚远,但是我需要通过将数字“ 1”附加到与其他四个表具有FK关系的PK Identiy列来修复数据库。我基本上是将四位数的数字变成五位数的数字。我需要保持关系。我可以将数字存储在var中,执行Set查询并附加1,然后为每个表执行此操作...
有更好的方法吗?
没有找到相关结果
已邀请:
5 个回复
烫珊
悍蕾驮苇袜
数据类型,因此在更新数字之前,您必须将其更改为ѭ1here(此处的文档),然后在更新后再次将其关闭。 只要您为关系设置了级联更新,其他表就应该自动更新。 编辑:由于无法更改标识值,我想您必须导出数据,设置新的标识值(+10000),然后再次导入数据。 任何人都有更好的建议...
郡晒景沧
犁攀富
填充地图表:
填充新表,为主键列提供新值:
截断原始表:
。由于您已禁用所有触发器和外键约束,因此这应该可以安全地工作。 执行
。 重新加载原始表:
执行
执行
。我们都做完了。 执行
,使身份计数器与表中的数据保持同步。 现在,使用映射表将更改后的主键列向下传播。根据您的E-R模型,这可能会变得复杂,因为引用更新列的外键本身可能是组合主键的一部分。 完成所有操作后,开始重新启用约束并触发您禁用的操作。确保使用
选项执行此操作。修复因此发现的所有问题。 最后,删除映射表,并清除单个用户标志,并使您的系统重新联机。 小菜一碟! (或者其他的东西。)
屡倒雷图
插入后,您知道身份比原始身份多10000。 通过添加10000更新外键。