【发布时间】:2017-08-10 14:38:44
【问题描述】:
您好,我有一个简单的表 A 和 B,
Table A
int Id NOT NULL
Table B
int Id NOT NULL
int A1 NULL (FK to Table A.Id)
int A2 NULL (FK to Table A.Id)
当相关记录(在 A1、A2 或两者上)被删除时,我想做的是从表 B 中删除记录。
我已经在 A1 关系上创建了 DELETE 动作级联,它运行良好,但是当我尝试在 A2 关系上设置 DELETE 动作级联时,我得到了:
'A'表保存成功'B'表 - 无法创建关系“FK_B_A2”。在表“B”上引入 FOREIGN KEY 约束“FK_B_A2”可能会导致循环或多个级联 路径。指定 ON DELETE NO ACTION 或 ON UPDATE NO ACTION,或修改 其他 FOREIGN KEY 约束。无法创建约束或索引。 查看以前的错误。
我不明白为什么不能设置?我只是希望能够在表 A 上使用 SQL MERGE(当删除某些内容时,我想删除表 B 中的相关记录或合并失败)。
【问题讨论】:
-
表之间的关系是什么?表 B
A1和A2列与表 AId列相关? -
是的,我会更新我的帖子,A1 和 A2 列对表 A 有 FK
标签: sql-server merge foreign-keys relationship cascade