![自动删除外键以重新创建表,然后自动将外键放回原位](https://linux22.com/image/525190/%E8%87%AA%E5%8A%A8%E5%88%A0%E9%99%A4%E5%A4%96%E9%94%AE%E4%BB%A5%E9%87%8D%E6%96%B0%E5%88%9B%E5%BB%BA%E8%A1%A8%EF%BC%8C%E7%84%B6%E5%90%8E%E8%87%AA%E5%8A%A8%E5%B0%86%E5%A4%96%E9%94%AE%E6%94%BE%E5%9B%9E%E5%8E%9F%E4%BD%8D.png)
我遇到过多次 SSMS 告诉我需要重新创建表的情况,即使是像将列设为可空这样简单的事情。如果此表被 FK 引用,我理想情况下会想办法暂时从“其他”表中删除这些 FK,重新创建我的表,然后再次在另一个表上重新创建 FK。
是否有已知的方法可以做到这一点?
答案1
在这种情况下,禁用将不起作用。
我可能会这么做:
- 使用 SSMS GUI 进行更改
- 保存脚本:不要执行它
- 逐节运行
- 使用比较工具生成更好的脚本(例如 Red Gate)
步骤 4 是可选的,你可以使用步骤 2/3 中的脚本
我遇到过多次 SSMS 告诉我需要重新创建表的情况,即使是像将列设为可空这样简单的事情。如果此表被 FK 引用,我理想情况下会想办法暂时从“其他”表中删除这些 FK,重新创建我的表,然后再次在另一个表上重新创建 FK。
是否有已知的方法可以做到这一点?
在这种情况下,禁用将不起作用。
我可能会这么做:
步骤 4 是可选的,你可以使用步骤 2/3 中的脚本