求救!!!
这是一个客户正在使用的软件, 昨天下午客户打过电话来,
说昨天的一部分POS收银记录已经查不到了, 已经减掉的库存又加回去了!
而在昨天下班前还能看到正常的记录。
数据库为SQL 2000开发版,打了SP4。
过程是这样:
在软件中通过存储过程执行:
Insert into 表.................语句 保存数据,
表中有一列ID 为自动增长,中间已经少了一部分数值,应该可以肯定数据已经插入表中。
今天去客户那儿去看了,用Log Explorer打开的日志,情况是这样:
1、6月13日 12:21:02 之后直到关机前,插入收银记录、减少库存等正常操作确实已经存在,
但操作时间为同一时间: 06-13 13:32:33 640。因为插入收银记录时表中有一个字段记录时间,
在正常操作记录中可以看到插入收银记录的时间,此时间是正常的机器时间,与日志中记录的操作时间不同。
2、正常操作之后还存在与正常操作相反的操作记录,删除了收银记录,重新插入库存记录,
时间与正常操作的时间相同。
3、正常操作中删除记录可以看到删除的内容,如减少库存时为两条记录,一条是删除原记录,
另一条是插入新记录(库存商品数量为已减少出库数量后的数值),但是与正常操作相反的记录中,
比如说删除掉的收银记录,无法看到被删除的内容,提示信息为:Additional invaid....
(没有记下原始的内容,大概是这两个单词)。
4、晚上大约22点关机,此时数据库有一项操作记录为:ABORT_XACT
应该可以排除人为的原因吧,感觉好象在中午12点21分之后的操作被数据库做为一个事务,
全部回滚了。
------解决方案--------------------
可以帮顶吗?
------解决方案--------------------
ABORT_XACT --- 这是SyBase的命令, 就是滚回前面的交易
我想SQL Server也用了这个.
------解决方案--------------------
如果出现这个的话,表示都回滚了....
看看那上面的那个例子,
XACT_STATE (Transact-SQL)
http://msdn.microsoft.com/zh-cn/library/ms189797.aspx
------解决方案--------------------
那就的确很奇怪了.....
还是等老大来解决吧.....
------解决方案--------------------
帮你UP
下