我有一个数据库,客户端似乎一夜之间就丢失了数据。他们输入记录并退出系统,然后声称第二天无法再次找到它们。
受影响的表的主键索引中的ID号似乎确实存在间隙,应该是自动递增和连续的。客户端无法删除记录,因此似乎存在问题。
我尝试过使用DBCC CHECKDB
和DBCC REINDEX
,但记录没有重新显示,问题仍在继续。
退出VB.NET 2010应用程序后,我使用以下内容为每个表编写记录:
Me.binds_Tablename1.EndEdit()
Me.binds_Tablename2.EndEdit()
TableAdapterManager.UpdateAll(Me.Dataset_1)
这个系统已经运行了2年,但现在正在播放。数据库损坏可能成为问题吗?
答案 0 :(得分:3)
因为刚刚开始,它们是否有可能在某个地方进入2012年,或者与2012年有关,也许这个值在查找表中不存在,事务将被回滚
当事务回滚时,身份值不会被重用,这就是为什么你会看到差距,你需要找出你有回滚的原因
答案 1 :(得分:2)
如果内存服务,TableAdapterManager.UpdateAll()
方法将更新包装在事务中。自动增量字段在事务之外递增,所以我猜你的一些事务可能会回滚。
答案 2 :(得分:0)
现在看来已经排序了 - 客户端正在运行镜像硬盘,其中一个硬件错误报告开始出现问题。由于这被替换了,问题并没有重新出现。
感谢您的帮助!