SQL DELETE似乎有效但后来没有实现更改

时间:2014-02-26 10:31:26

标签: sql sql-server

我创建了一张目前已包含10行的卡片表。如果我执行:

delete from [Card] where cardnumber = 00010 //this card being held in the last row

我得到了结果消息(1行(s)受影响),我希望它可以正常工作,但是在打开表格后我发现该行仍在那里。

接下来我在SSMS中使用Edit Top 200 Rows来手动选择行并将其删除,然后将其从表中删除,但是当我执行时,该行又回到表中。

最后,我创建了一个存储过程,在执行时返回成功,但仍未保留更改。

但奇怪的是,我有一张与Card表有关系的CardAmount表,每张卡都有点数,而且这些卡正在从CardAmount中删除。

我看过this个问题,但我认为这个问题没有得到解决。

1 个答案:

答案 0 :(得分:2)

首先猜测(结果证明是正确的)是instead of delete触发器,忘记实际影响它要执行删除的表。

这是一个常见的错误,特别是如果您正在实现一些影响深远的级联(并且不能仅在外键约束上使用ON DELETE CASCADE),您必须使用INSTEAD OF触发但忽略在基础表上执行DELETE