尝试对某些外键应用ON CASCADE UPDATE
或ON CASCADE DELETE
时,出现以下错误:
消息1787:无法使用级联DELETE或定义外键约束 在表上更新,因为该表具有INSTEAD OF DELETE或 UPDATE TRIGGER定义了它。
这是我的SQL代码:
ALTER TABLE myTable ADD CONSTRAINT [FK_ACTE__CODE_OBJET_ACTE] FOREIGN KEY ([My_Column] ) REFERENCES Table_Referenced ([Column_Referenced]) ON UPDATE CASCADE ON DELETE CASCADE ;
我的请求有什么问题? CASCADE条件是否与删除或更新触发器不兼容?
答案 0 :(得分:1)
我的请求有什么问题?是CASCADE条件 是否与删除或更新触发器不兼容?
是。请检查
和
Cascading Referential Integrity Constraints
无法定义INSTEAD OF DELETE和INSTEAD OF UPDATE触发器 具有使用DELETE或。定义的外键的表 更新级联操作。
此外:
无法为具有INSTEAD的表指定级联操作 OF UPDATE或INSTEAD OF DELETE触发器。经过级联行动之后 已为表,INSTEAD OF UPDATE或INSTEAD OF DELETE定义 触发器无法添加到它。
如果能够,您可以使用AFTER triggers
。
修改强>
你实际上是自相矛盾的。你必须决定你真正想要的逻辑; INSTEAD OF触发器将操作重定向到其他逻辑或外键中的级联操作。