sql server 2005 丢失数据的问题

z348051967 2014-06-14 09:04:32
最近, SQL2005 老出现丢失数据的问题,用日志查看器还查不到, 感觉是数据库是自己回滚了, 但是 我并没有用事务啊 ,头疼,
数据丢了, 但是自增列的ID没有断 ,后边数据是接着的, 是不是SQL有什么问题啊, 已经打了SP4补丁,哪位大侠 帮忙解决下
...全文
235 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
以学习为目的 2014-06-19
  • 打赏
  • 举报
回复
引用 11 楼 z348051967 的回复:
在描述下具体情况: 出库两张表 一张存主记录 一张存明细,主记录计算金额是从从表的datatable 中算的,如果往明细表中insert成功 才向明细的DATATABLE中 ADD记录,有TRY操作,明细表有一列自增ID,然后所有记录录入完后,有单独的完成按钮对库存进行操作。 现在的问题是 主表的金额是正确的金额,但明细表中的金额合计比主表的少,但是对比该记录之前的跟之后的记录 自增ID并没有断开,就是说三条出库记录明细表的ID是连续的。 如果是人为删除或是用SQL语句删除的话,理论上自增ID应该是断的 我现在怀疑 一种情况是数据根本没存到数据库里边,但是往DATATABLE中ADD了记录。但是如果INSERT 报错的话应该会有提示啊,而且有TRY操作的话应该跳过对DATATABLE的操作啊? 二种情况是数据库回滚,就是当时INSERT进去了,后来回滚记录,所以ID没有断。 我现在对第一种情况采取的措施是,在点击完成按钮时从数据库中在取一下合计金额,如果跟DATATABLE中算出来的不一致就给出提示不让保存,我想通过这种方式先观察一阵 ,如果还会出现丟数问题应该就是我推测的第二种情况了吧
那就跟踪一下看看
z348051967 2014-06-19
  • 打赏
  • 举报
回复
在描述下具体情况: 出库两张表 一张存主记录 一张存明细,主记录计算金额是从从表的datatable 中算的,如果往明细表中insert成功 才向明细的DATATABLE中 ADD记录,有TRY操作,明细表有一列自增ID,然后所有记录录入完后,有单独的完成按钮对库存进行操作。 现在的问题是 主表的金额是正确的金额,但明细表中的金额合计比主表的少,但是对比该记录之前的跟之后的记录 自增ID并没有断开,就是说三条出库记录明细表的ID是连续的。 如果是人为删除或是用SQL语句删除的话,理论上自增ID应该是断的 我现在怀疑 一种情况是数据根本没存到数据库里边,但是往DATATABLE中ADD了记录。但是如果INSERT 报错的话应该会有提示啊,而且有TRY操作的话应该跳过对DATATABLE的操作啊? 二种情况是数据库回滚,就是当时INSERT进去了,后来回滚记录,所以ID没有断。 我现在对第一种情况采取的措施是,在点击完成按钮时从数据库中在取一下合计金额,如果跟DATATABLE中算出来的不一致就给出提示不让保存,我想通过这种方式先观察一阵 ,如果还会出现丟数问题应该就是我推测的第二种情况了吧
發糞塗牆 2014-06-17
  • 打赏
  • 举报
回复
insert /update/delete是自动提交事务,不需要用begin tran都会回滚,但是自增ID没断,回滚的可能性就很小了。你的丢失数据现象是如何的?具体描述一下
唐诗三百首 2014-06-16
  • 打赏
  • 举报
回复
建议检查前台程序是否有Bug,特别是有关delete记录的程序逻辑是否正确. 或用SQL Profiler工具跟踪一段时间,就知道记录的完整的变化过程是怎样的.
tcmakebest 2014-06-14
  • 打赏
  • 举报
回复
自己的问题不要怪到SQLSERVER的头上,只要看看错误处理代码,一定是楼主疏忽了.
以学习为目的 2014-06-14
  • 打赏
  • 举报
回复
引用 6 楼 z348051967 的回复:
出入库记录不存在覆盖的问题,是录入一条就保存一条,正负数会保存为两条记录,库存是在之前基础上UPDATE,而且在数据操作上没有用存储,全是INSERT 跟UPDATE 操作,insert 成功后才向 datatable 中增加记录行
有没有可能是数据转表了?
z348051967 2014-06-14
  • 打赏
  • 举报
回复
出入库记录不存在覆盖的问题,是录入一条就保存一条,正负数会保存为两条记录,库存是在之前基础上UPDATE,而且在数据操作上没有用存储,全是INSERT 跟UPDATE 操作,insert 成功后才向 datatable 中增加记录行
以学习为目的 2014-06-14
  • 打赏
  • 举报
回复
如果你的并发量比较大,那更应该考虑下你的处理过程
以学习为目的 2014-06-14
  • 打赏
  • 举报
回复
引用 3 楼 z348051967 的回复:
我做的是一个进销存系统,是录入时保存一条就向数据库里边插入一条记录,最后有单独的完成,完成之后统一 更新数量,然后可以打印 单据,现在问题是单据打出来了,库存也变了,就是记录没有了 我用的是 .net 开发的
那就就要看下后台存储过程,就是处理插入记录的那一段是不是有问题,或者是不是有退库之类的操作处理有BUG。比如出库产品1数量1,退库的话应该是再插入一条记录产品1 数量-1,而你是覆盖、修改处理的。
z348051967 2014-06-14
  • 打赏
  • 举报
回复
我做的是一个进销存系统,是录入时保存一条就向数据库里边插入一条记录,最后有单独的完成,完成之后统一 更新数量,然后可以打印 单据,现在问题是单据打出来了,库存也变了,就是记录没有了 我用的是 .net 开发的
以学习为目的 2014-06-14
  • 打赏
  • 举报
回复
你感觉的数据丢失是从哪儿体现的。是指前端录入了查询不到,还是指某一时刻可以查询到,后一时刻查询不到还是其他情况?
以学习为目的 2014-06-14
  • 打赏
  • 举报
回复
ID列自增,数据库丢失了但是ID列没有间断,要不就是你的你认为丢失的数据肯定就没有写到库里,要不就是你有事务进行了处理。

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧