缺少SQL Server表中的记录

时间:2012-01-10 15:26:57

标签: sql sql-server-2008 vb.net-2010

我有一个数据库,客户端似乎一夜之间就丢失了数据。他们输入记录并退出系统,然后声称第二天无法再次找到它们。

受影响的表的主键索引中的ID号似乎确实存在间隙,应该是自动递增和连续的。客户端无法删除记录,因此似乎存在问题。

我尝试过使用DBCC CHECKDBDBCC REINDEX,但记录没有重新显示,问题仍在继续。

退出VB.NET 2010应用程序后,我使用以下内容为每个表编写记录:

Me.binds_Tablename1.EndEdit()
Me.binds_Tablename2.EndEdit()
TableAdapterManager.UpdateAll(Me.Dataset_1)

这个系统已经运行了2年,但现在正在播放。数据库损坏可能成为问题吗?

3 个答案:

答案 0 :(得分:3)

因为刚刚开始,它们是否有可能在某个地方进入2012年,或者与2012年有关,也许这个值在查找表中不存在,事务将被回滚

当事务回滚时,身份值不会被重用,这就是为什么你会看到差距,你需要找出你有回滚的原因

答案 1 :(得分:2)

如果内存服务,TableAdapterManager.UpdateAll()方法将更新包装在事务中。自动增量字段在事务之外递增,所以我猜你的一些事务可能会回滚。

答案 2 :(得分:0)

现在看来已经排序了 - 客户端正在运行镜像硬盘,其中一个硬件错误报告开始出现问题。由于这被替换了,问题并没有重新出现。

感谢您的帮助!