【发布时间】:2014-02-26 18:46:43
【问题描述】:
我已经创建了一个卡片表,到目前为止包含 10 行。如果我执行:
delete from [Card] where cardnumber = 00010 //this card being held in the last row
我收到了结果消息(受影响的 1 行),我希望它可以工作,但是打开表格后我发现该行仍然存在。
接下来我在 SSMS 中使用 Edit Top 200 Rows 手动选择该行并将其删除,然后将其从表中删除,但是当我执行时,该行又回到了表中。
最后,我创建了一个存储过程,执行时返回成功,但更改仍未保留。
然而奇怪的是,我有一个 CardAmount 表,它与包含每张卡点数的 Card 表有关系,并且这些卡正在从 CardAmount 中删除。
我查看了this 的问题,但我认为这个问题没有得到解决。
【问题讨论】:
-
cardnumber字段是什么数据类型? = 00010 有点奇怪。
-
另外 - 此表上是否有任何触发器可能会中断您的删除?
-
第一个猜测是
instead of delete触发器忘记实际影响要执行删除的表。 -
您使用的程序是否要求您提交更改(使其永久化)?
-
您可以检查的事项: 1) 事务是否已提交? 2)有一个触发器而不是或重新创建行? 3)其他一些进程/bl正在重新创建该行(类似于“如果它不存在则插入它”)
标签: sql sql-server