我有一个数据库就位,客户端似乎在一夜之间丢失了数据。他们输入记录并退出系统,然后宣称第二天不能再找到它们。SQL服务器表中缺少记录
受影响的表的主键索引中的ID号似乎在自动递增且连续的情况下存在差距。客户端没有删除记录的功能,所以似乎存在问题。
我试过使用DBCC CHECKDB
和DBCC REINDEX
但记录不会重新出现,问题仍然存在。
在退出的VB.NET 2010应用程序,我用下面写的记录为每个表:
Me.binds_Tablename1.EndEdit()
Me.binds_Tablename2.EndEdit()
TableAdapterManager.UpdateAll(Me.Dataset_1)
该系统已2年工作得很好,但现在打起来。数据库腐败可能是问题吗?
很难分辨发生了什么!您是否使用过SQL Server审计和数据库审计规范来查明谁使用删除语句访问了哪些表? – Mithrandir 2012-01-10 15:32:59
不可能是数据库。 Occam的Razor会指出,如果最近数据库和代码都没有改变,那么你需要将数据/用户/月相等作为起点。 – Simon 2012-01-10 15:42:04