【发布时间】:2015-02-23 20:06:58
【问题描述】:
我在 sql server 中有一个表,如果我从中删除一行,则会插入一个新行,其中包含与我删除的数据相同的数据和用户 ID。此表上没有触发器。另外,我搜索了所有引用这个表的数据库对象,在数据库中没有任何地方引用这个表的触发器,只有一些存储过程,没有任何代码会导致这种行为。
要清楚,如果我运行这个查询:
delete from my_table where id = 1
id 为1 的行将被删除,但会插入一个与删除行具有相同用户ID 和日期的新行。不涉及应用程序代码,只是直接在数据库上运行的直接 sql delete 语句会导致此问题。
除了触发器之外还有什么可能导致这种情况发生?我以前从未遇到过这样的事情。
【问题讨论】:
-
你怎么知道该行实际上被删除了?
-
是插入了一个新行,还是一开始就没有被删除的同一行?也许有一个
INSTEAD OF触发器仅用于删除... -
@Lamak 因为我为具有该用户 ID 的行运行了一个选择语句,而原来的行已经消失了。
-
又过了多久,“同一行”又被插入了?,你能运行探查器吗?
-
然后我会按照@Lamak 的建议运行分析器跟踪。
标签: sql-server