gpt4 book ai didi

sql-server - 为什么在启用时不应违反外键?

转载 作者:行者123 更新时间:2023-12-04 06:00:58 24 4
gpt4 key购买 nike

为什么在 SQL Server 中启用时不应违反外键?

我们有两张 table ,Order HeaderOrder Detail .
Order header餐 table OrderID列引用OrderDetail餐 table OrderID柱子。

然后我将把一些数据从生产数据库迁移到这些表。
我只是禁用这些表外键约束并从生产数据库插入数据。

插入数据后,订单明细表的OrderID列包含值 101,102,103 , 但订单头表的 Order ID列包含值 100只要。

然后我尝试使用以下 t-sql 代码启用外键约束

exec sp_msforeachtable "ALTER TABLE ? CHECK CONSTRAINT ALL"

为什么不应该在启用时用现有数据违反外键?

最佳答案

当您从与 FKey 连接的多个表中移动数据时 - 您应该:

  • 或保留两个表中的键值
  • 或在移动
  • 时发出更改引用表中相应 FKey 列的新值

    当您启用 FKey 约束时 - 默认情况下会检查数据一致性

    关于sql-server - 为什么在启用时不应违反外键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8906538/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com