我有一个在我的 SQL Server 数据库中引用自身的表,我将它与 LINQ-to-SQL 一起使用。
我在这个表上创建了一个触发器来处理行的删除。
ALTER TRIGGER [dbo].[TrgDeleteCalculation]
ON [dbo].[Calculation]
INSTEAD OF DELETE
AS
BEGIN
DELETE FROM Calculation WHERE CalcParentId IN (SELECT CalculationId FROM deleted)
DELETE FROM Calculation WHERE CalculationId IN (SELECT CalculationId FROM deleted)
END
当我尝试在 DataModel 中执行删除时会出现问题。
当我这样做时,出现以下异常:DELETE 语句与 SAME TABLE REFERENCE 约束“FK_calculations_calculations”冲突。冲突发生在数据库“DesignDb”、表“dbo.Calculation”、列“CalcParentId”中。该语句已终止。
我怀疑触发器没有被触发...
是这样吗,还是其他原因?