日期:2014-05-17  浏览次数:20661 次

sql server 2000 数据会偶尔莫名其妙丢失一条
我的客户端程序在第一个岗位输入数据前,会先用存储过程向一个表中插入一行,并返回唯一的一个编码,例如:201304040001、201304040002...,输入数据结束后,利用返回的编码将客户端输入的数据对这行进行更新。

到下一个岗位再利用这个编码第二次更新几个字段,F1,F2...

然后过一段时间本岗位会利用这个编码第三次更新几个其他字段F5,F8...

****但是,在第三次想再更新几个其他字段F5,F8...的时候,这行数据突然没有了。****

让人非常头疼,请问有人遇见过类似的问题吗?

------解决方案--------------------
引用:
因为我不在出问题的现场,所以确实不能确定是否标记成功了,因为标记未成功,第一个岗位确实能够删除。
你是SQL2K可以利用LOG 查看器.(如果你日志OK的话)可以查看得到DEL删除的记录
------解决方案--------------------
不客气
你这个很大可能是由于并发问题造成数据问题.你可以单独TRACE那几个表的操作情况.
主要还得根据你的实际情况去琢磨看是哪一块可能造成数据删除(也有可能是更改)
------解决方案--------------------
引用:
我还考虑是否是因为并发造成的丢失,因为有多个岗位同时查询,插入,更新,但是:我的第一个岗位的插入操作是用事务提交的,返回的编码也从未出现过错误,而且第二个岗位能看到这张单子,就说明成功插入了,除非sql server使用了延时写入技术,造成第二个岗位看到的是服务器内存里的内容,但是没有停电啊,所以这也不能说通为什么丢失这行数据啊。

还要看你的事务隔离级别.如果是读已提交.第二岗位还能读就是保存成功了.