sql server 2000 数据会偶尔莫名其妙丢失一条

iamtsfw 2013-04-06 10:23:38
我的客户端程序在第一个岗位输入数据前,会先用存储过程向一个表中插入一行,并返回唯一的一个编码,例如:201304040001、201304040002...,输入数据结束后,利用返回的编码将客户端输入的数据对这行进行更新。

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

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

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

让人非常头疼,请问有人遇见过类似的问题吗?
...全文
442 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
iamtsfw 2013-04-06
  • 打赏
  • 举报
回复
请您帮我看看我生成ID的存储过程好吗? --获取新id CREATE PROCEDURE prBuyMakeNewBuyID @strToday varchar(50) AS set transaction isolation level serializable begin transaction declare @maxid varchar(50) declare @tmpnum float select @tmpnum=convert(float,right(isnull(max(id), @strToday+'0000'),4)) from tbbuybuys where left(id,8)=@strToday select @tmpnum=@tmpnum+1 if @tmpnum<=9 and @tmpnum>=0 select @maxid=@strToday + '000' + convert(varchar(50),@tmpnum) if @tmpnum<=99 and @tmpnum>=10 select @maxid=@strToday + '00' + convert(varchar(50),@tmpnum) if @tmpnum<=999 and @tmpnum>=100 select @maxid=@strToday + '0' + convert(varchar(50),@tmpnum) if @tmpnum<=9999 and @tmpnum>=1000 select @maxid=@strToday + convert(varchar(50),@tmpnum) declare @province varchar(100) declare @city varchar(100) declare @county varchar(100) declare @company varchar(100) declare @allownowsubweight int select @province=province,@city=city,@county=county, @company=company from tbcommcompany select @allownowsubweight=allownowsubweight from tbBuyControlArgs if @allownowsubweight=1 begin insert into tbbuybuys (id,assaylock,totalweightlock,carweightlock,nowsubweightlock,calclock, province,city,county1,company,carweightmicrochange,isup,othermark) values(@maxid,0,0,0,0,0,@province,@city,@county,@company,0,'未上传',0) end else begin insert into tbbuybuys (id,assaylock,totalweightlock,carweightlock,nowsubweightlock,calclock,province,city,county1,company,carweightmicrochange,isup,harlamount1,harlweight,meshamount1,meshweight,packsubweight,nowsubweight,othermark) values(@maxid,0,0,0,1,0,@province,@city,@county,@company,0,'未上传',0,0,0,0,0,0,0) end select @maxid commit transaction GO
SQL77 2013-04-06
  • 打赏
  • 举报
回复
引用 10 楼 iamtsfw 的回复:
我还考虑是否是因为并发造成的丢失,因为有多个岗位同时查询,插入,更新,但是:我的第一个岗位的插入操作是用事务提交的,返回的编码也从未出现过错误,而且第二个岗位能看到这张单子,就说明成功插入了,除非sql server使用了延时写入技术,造成第二个岗位看到的是服务器内存里的内容,但是没有停电啊,所以这也不能说通为什么丢失这行数据啊。
还要看你的事务隔离级别.如果是读已提交.第二岗位还能读就是保存成功了.
iamtsfw 2013-04-06
  • 打赏
  • 举报
回复
您说的太对了,可能是第一个岗位进行了更改,我刚才也兴冲冲地去看了自己程序里的操作日志,但是失望的是第一个岗位没有修改这张单据的数据,而且如果第一个岗位修改的话,第二个岗位做的更新应该还在啊,我们发现第二个岗位做的更新也没有了,说明确实是单据丢失了。
SQL77 2013-04-06
  • 打赏
  • 举报
回复
日志你可以备份啊.待下次出现问题的时候.可以日志查看是何原因.
iamtsfw 2013-04-06
  • 打赏
  • 举报
回复
我还考虑是否是因为并发造成的丢失,因为有多个岗位同时查询,插入,更新,但是:我的第一个岗位的插入操作是用事务提交的,返回的编码也从未出现过错误,而且第二个岗位能看到这张单子,就说明成功插入了,除非sql server使用了延时写入技术,造成第二个岗位看到的是服务器内存里的内容,但是没有停电啊,所以这也不能说通为什么丢失这行数据啊。
SQL77 2013-04-06
  • 打赏
  • 举报
回复
不客气 你这个很大可能是由于并发问题造成数据问题.你可以单独TRACE那几个表的操作情况. 主要还得根据你的实际情况去琢磨看是哪一块可能造成数据删除(也有可能是更改)
iamtsfw 2013-04-06
  • 打赏
  • 举报
回复
感谢mvp的帮助
iamtsfw 2013-04-06
  • 打赏
  • 举报
回复
非常遗憾的就是,我拿到日志的时间比较晚,大约比发生故障的时间晚了5个小时,发现里面只保留了最近三个小时的日志,没有找到有价值的任何东西。
iamtsfw 2013-04-06
  • 打赏
  • 举报
回复
首先感谢你的回复。 补充: 以前仅仅遇到在网络非常卡的情况下,第一个岗位进行保存和打印操作后,能正常出单据(先保存后打印,未提示保存失败),但是拿着单据到第二个岗位的时候,数据库中这行数据消失了,我们解决网络的问题后,问题没有了,但是又出现这种莫名其妙的问题了,因为这次是第二个岗位能看到单据,编辑第一次后,过段时间后再编辑第二次时,发现单据不见了,但是没有发生过编辑第二次后单据消失的情况。
SQL77 2013-04-06
  • 打赏
  • 举报
回复
引用 4 楼 iamtsfw 的回复:
因为我不在出问题的现场,所以确实不能确定是否标记成功了,因为标记未成功,第一个岗位确实能够删除。
你是SQL2K可以利用LOG 查看器.(如果你日志OK的话)可以查看得到DEL删除的记录
iamtsfw 2013-04-06
  • 打赏
  • 举报
回复
因为我不在出问题的现场,所以确实不能确定是否标记成功了,因为标记未成功,第一个岗位确实能够删除。
SQL77 2013-04-06
  • 打赏
  • 举报
回复
引用 2 楼 iamtsfw 的回复:
补充,我的第二个岗位写入数据后,会加入一个锁定标志,就除了管理员外,任何人都不能删除了。我询问管理员,他说未做任何删除操作。
这个就要你自己去确定了,你标志加成功了???如果没主动删除 不可能会自动没了的.
iamtsfw 2013-04-06
  • 打赏
  • 举报
回复
补充,我的第二个岗位写入数据后,会加入一个锁定标志,就除了管理员外,任何人都不能删除了。我询问管理员,他说未做任何删除操作。
SQL77 2013-04-06
  • 打赏
  • 举报
回复
你这应该被删除了吧
SQL77 2013-04-06
  • 打赏
  • 举报
回复
select @tmpnum=convert(float,right(isnull(max(id), @strToday+'0000'),4)) from tbbuybuys where left(id,8)=@strToday 1.你的事务隔离级别改了可能很影响并发量的 2.where left(id,8)=@strToday-- 这里你看看应该改成 ID LIKE @strToday+'%'这样的写法来利用索引.减少对表的锁定 3. if @tmpnum<=9 and @tmpnum>=0 select @maxid=@strToday + '000' + convert(varchar(50),@tmpnum) if @tmpnum<=99 and @tmpnum>=10 select @maxid=@strToday + '00' + convert(varchar(50),@tmpnum) if @tmpnum<=999 and @tmpnum>=100 select @maxid=@strToday + '0' + convert(varchar(50),@tmpnum) if @tmpnum<=9999 and @tmpnum>=1000 select @maxid=@strToday + convert(varchar(50),@tmpnum) 这一段应该可以直接改成RIGHT('0000'+convert(varchar(50),@tmpnum),4) 呵呵.那时候在忙...以上是一些建议.
内容概要:本文系统比较了九种智能优化算法(CGO、SCA、GWO、CSA、SSA、HHO、WOA、PSO、TSO)在优化性能方面的表现,并提供了完整的Matlab代码实现。研究涵盖了各类算法的基本原理、参数设置、收敛特性及在典型测试函数上的优化效果对比,通过仿真实验对各算法的寻优能力、收敛速度和稳定性进行了全面评估。文中不仅展示了算法在求解连续空间优化问题中的应用流程,还深入分析了不同算法在探索与开发能力之间的平衡机制,为科研人员和工程技术人员在面对复杂优化问题时选择合适的算法提供了科学依据和技术支持。; 适合人群:具备一定编程基础,工作1-3年的研发人员,尤其适用于从事智能优化、电力系统调度、新能源控制、自动化等相关领域的研究人员和工程师。; 使用场景及目标:① 掌握多种主流智能优化算法的核心思想与实现方式;② 对比不同算法在相同优化问题下的性能差异,指导实际项目中算法选型;③ 将优化算法应用于综合能源系统调度、路径规划、参数辨识等工程优化场景,提升求解效率与精度。; 阅读建议:此资源以Matlab代码为核心载体,结合理论分析与实验验证,建议读者在学习过程中同步运行并调试代码,深入理解各算法的迭代机制与关键参数的影响,结合具体应用场景进行拓展与改进。
【重要提示】本资源设置为0积分下载,若非0积分请勿轻易下载 亲爱的CSDN用户: 首先感谢你点进这个资源页面。我需要提前说明一个重要情况: 本资源原本已设置为“0积分下载”,即作者希望完全免费共享。但CSDN平台有时根据文件的下载热度、文件大小、用户权限等因素,自动将部分资源的积分调整为非0数值(如1积分、2积分、5积分等)。这是平台系统的自动行为,而非作者本人的设定。 因此,如果你当前看到该资源的下载所需积分不是0(例如显示为1、2、3……),请谨慎决定是否下载。 如果你按照非0积分支付并下载后发现资源内容不符合预期、链接失效,或者实际上该资源本应是免费的,作者无法为此承担积分损失或退还操作。强烈建议:仅在页面显示为0积分时进行下载。 另外,本资源描述中并未直接提供具体的下载地址或外部链接,因为它本身是一个通过CSDN官方上传通道提交的文件/内容包。如果你看到描述中没有外部网盘地址,这是正常的——资源文件应通过CSDN内置的“下载”按钮获取。若因平台积分显示异常导致你支付了积分,请优先联系CSDN客服咨询积分退还政策,作者没有权限修改平台自动设定的积分值。 感谢你的理解与支持。技术分享本应开放,但受限于平台规则,特此提醒如上。祝学习进步!
内容概要:本研究聚焦于考虑碳交易机制的园区综合能源系统电热协同运行优化问题,旨在通过引入阶梯式碳交易机制,构建电能与热能系统协同调度的优化模型,以实现能源高效利用与碳排放成本最小化的双重目标。研究建立了包含燃气轮机、电锅炉、储能系统等多种能源设备的综合能源系统架构,综合考虑了电、热负荷的动态需求以及设备运行约束,并将碳交易成本作为关键经济变量纳入优化目标函数。通过Matlab编程实现模型求解,采用智能优化算法对系统运行策略进行寻优,有效协调了不同能源设备的出力分配,降低了系统综合运行成本,同时显著减少了碳排放量。研究结果验证了碳交易机制对促进园区绿色低碳运行的有效性,为综合能源系统的经济与环保协同优化提供了科学决策支持。; 适合人群:能源系统优化、电力系统调度、综合能源管理等相关领域的科研人员、工程技术人员及研究生。; 使用场景及目标:①研究碳交易政策下园区级综合能源系统的优化运行策略;②掌握电热协同调度建模方法与Matlab仿真技术;③探索节能减排与经济效益双赢的能源管理方案。; 阅读建议:建议读者结合Matlab代码深入理解模型构建与求解过程,重点关注目标函数设计、约束条件设置及算法参数配置,可尝试修改系统参数或引入新的设备模型以拓展研究深度。

22,297

社区成员

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

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