gpt4 book ai didi

sql-server - SQL Server - 在没有 CASCADE 和 INSTEAD OF 触发器的情况下保持参照完整性

转载 作者:行者123 更新时间:2023-12-01 06:42:34 25 4
gpt4 key购买 nike

我有一个表 (TableB),它与父表 (TableA) 有外键关系。

当我删除表 A 中的记录时,我想通过删除表 B 中引用表 A 中已删除记录的所有记录来保持参照完整性。

通常我会删除级联。但是,由于 SQL Server 中的表结构和针对多个级联路径的过度保护措施,这对于这种特定关系是不可能的。

我也不能使用 INSTEAD OF 触发器,因为 TableA 本身有一个 CASCADE 外键关系。

我正在考虑做的是将 TableA 和 TableB 之间的关系更改为 ON DELETE SET NULL,然后创建一个 AFTER 触发器来清理 TableB 中的 NULL 记录。

有没有更好的方法来处理这种情况?

最佳答案

您能否更改阻止您将其添加为 ON DELETE CASCADE 的其他约束? ?

你能添加一个 DeleteMe列,然后发出 UPDATE A SET DeleteMe = 1 ,然后使用 after 触发器先删除表 B 行,然后是请求的表 A 行?

您能否以某种方式拆分或合并表(即垂直地)以分离它们相互排斥的依赖关系?

关于sql-server - SQL Server - 在没有 CASCADE 和 INSTEAD OF 触发器的情况下保持参照完整性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9037241/

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