数据回滚问题

chenqs70 2003-05-18 02:09:28
我用一个变量SQL来保存很多SQL语句;在写入的时候有部分写不进去,请指教。
sql="insert into rrt_table1 values(.........);insert into table2 values(......);insert into table3 values(......);insert into table4 values(......);insert into table5 values(......);insert into table6 values(......);"
就这个,在插入的时候第二个表,第三个表有时候会INSERT不进去。
...全文
59 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
流星尔 2003-05-30
  • 打赏
  • 举报
回复
楼上都说的很有道理。
像这样sql语句很多,也会使网络流量增大。
chenqs70 2003-05-29
  • 打赏
  • 举报
回复
其实我用跟踪器跟踪到的数据写入时是完整的,但是插入的时候会少掉其中的表呢?真是太奇怪了,大家有没有好的想法啊!!
leimin 2003-05-29
  • 打赏
  • 举报
回复
我看了你的CODE.这条SQL语句有问题,至少是不完善的,你一次通过INSERT对很多表来写数据,是想实现数据的完整性,但如果你其中的一条语句有问题,获有写LOCK还没有释放,你的下一条语句就无法执行,你的代码在SINGLE USER的用户下还凑合可以运行,如果在多用户的环境我想会立即CRASH(有点不客气:-),不过实事却是如此).

--在插入的时候第二个表,第三个表有时候会INSERT不进去
这就是问题的一个表现形式.


给你一个建议:

将SQL要写入的动作和顺序写道一个STORED PROCEDURE中,在通过前台来调用,不但可以解决数据完整性的问题,还可以提供数据的并发性能.还可以减少网络的数据流量,隐藏内部的表结构...非常多的好处!
chenqs70 2003-05-28
  • 打赏
  • 举报
回复
还是不行,最近还是老是这样子,我已经加了
BEGIN TRAN
……
COMMIT TRAN
还是没有反应,不行呀!!!高手们呀,,,救命呀,,急呀,,
chenqs70 2003-05-18
  • 打赏
  • 举报
回复
就是偶尔会出现每二个表和第三个表的数据没INSERT 进去。
chenqs70 2003-05-18
  • 打赏
  • 举报
回复
insert into rrt_mjz_gh_ghxx (ylkh,lsh,ghsj,ghlxdm,ksdm,yggh,ghygh,bmbz,ksmc,ghf,zlf,sflxdm,scjzje,jblx,yblx,sybz,sjlsh) values ('B'+'00006354',1,'2003-05-16 07:34:09','01', '009','087', '087','mz', '急诊科','1.00', '0','00', '0.00', '0','0','1',166567);insert into rrt_mjz_sf_cfxx (ylkh,bmbz,cfrq,cfh,ysdm,ksdm,cfts,hjydm,hjsj,yfdm,sflxdm,sfdldm,zje,byzd1,sfxmfldm,sjlsh) values ('B'+'00006354','mz','2003-05-16',0870087249,'087','009',1,'087','2003-05-16 07:34:09','028','00','02','59.83',249,'02',166568);insert into rrt_mjz_sf_cfmxxx (cfh,ypdm,dj,sl,hjsj,ypdw,dwbz,zsl,yyff,byzd3) values (0870087249,'02789','0.1100','1.00','2003-05-16 07:34:09','支','1','1.00','0.5mg im qd','1');insert into rrt_mjz_sf_cfmxxx (cfh,ypdm,dj,sl,hjsj,ypdw,dwbz,zsl,yyff,byzd3) values (0870087249,'02705','2.0200','1.00','2003-05-16 07:34:09','瓶','1','1.00','ivgtt qd','2');insert into rrt_mjz_sf_cfmxxx (cfh,ypdm,dj,sl,hjsj,ypdw,dwbz,zsl,yyff,byzd3) values (0870087249,'02733','25.7400','2.00','2003-05-16 07:34:09','瓶','1','2.00','','3');insert into rrt_mjz_sf_cfmxxx (cfh,ypdm,dj,sl,hjsj,ypdw,dwbz,zsl,yyff,byzd3) values (0870087249,'02703','1.9500','1.00','2003-05-16 07:34:09','瓶','1','1.00','ivgtt qd','4');insert into rrt_mjz_sf_cfmxxx (cfh,ypdm,dj,sl,hjsj,ypdw,dwbz,zsl,yyff,byzd3) values (0870087249,'02758','0.2200','3.00','2003-05-16 07:34:09','支','1','3.00','','5');insert into rrt_mjz_sf_cfmxxx (cfh,ypdm,dj,sl,hjsj,ypdw,dwbz,zsl,yyff,byzd3) values (0870087249,'02764','0.2640','3.00','2003-05-16 07:34:09','支','1','3.00','','6');insert into rrt_mjz_sf_cfmxxx (cfh,ypdm,dj,sl,hjsj,ypdw,dwbz,zsl,yyff,byzd3) values (0870087249,'02701','2.0200','1.00','2003-05-16 07:34:09','瓶','1','1.00','ivgtt qd','7');insert into rrt_mjz_sf_cfmxxx (cfh,ypdm,dj,sl,hjsj,ypdw,dwbz,zsl,yyff,byzd3) values (0870087249,'02727','0.3990','2.00','2003-05-16 07:34:09','支','1','2.00','','8');insert into rrt_mjz_sf_sjzxx (lsh,sjh,ylkh,sjlx,dysj,zje,kbxjje,zzfje2,sfydm,sfsj,dwjzje,jblx,yblx,byzd2,bkbxjje) values (166567,'0','B'+'00006354','0','2003-05-16 07:34:09', '1.00','1.00', '1.0','087', '2003-05-16 07:34:09','0.00','0','0','653', '0.00');insert into rrt_mjz_sf_sjmxxx (lsh,sfdldm,zje,xjje,jzje,fydm,sfxmfldm) values (166567,'14','1.00','1.00','0.00','030300','030300');insert into rrt_mjz_sf_sjmxxx (lsh,sfdldm,zje,xjje,jzje,fydm,sfxmfldm) values (166567,'57','0','0','0','030200','030200');insert into rrt_mjz_sf_sjzxx (lsh,sjh,ylkh,sjlx,dysj,zje,kbxjje,zzfje2,sfydm,sfsj,dwjzje,byzd1,byzd2,bkbxjje) values (166568,'0','B'+'00006354','0','2003-05-16 07:34:09','59.83','59.8300','59.8','087','2003-05-16 07:34:09','0','',654,'0');insert into rrt_mjz_sf_sjmxxx (lsh,sfdldm,fydm,sfxmfldm,zje,xjje,jzje) values (166568,'02','02','02','59.83','59.8','0');insert rrt_mjz_sf_yjkzh (ylkh,fysr,fyzc,ye,sfsj,sfydm,sfbz,bz) values ('B'+'00006354',0,60.8, 32.20,'2003-05-16 07:34:09','087','1','收费,'+'166567,166568,');
CoolAbu 2003-05-18
  • 打赏
  • 举报
回复
我估计是你要插入的数据有点问题,你把插入不成功的那次数据Print出来看看。

这种多表插入的问题,如果要保持同步,最好还是做成事务处理。。
chenqs70 2003-05-18
  • 打赏
  • 举报
回复
请问我是什么原因,是数据回滚问题吗?
july 2003-05-18
  • 打赏
  • 举报
回复
这种情况下,由于是一次提交,数据不同步,所以出错 正常,请加入go或者commit每一个 sql语句
pengdali 2003-05-18
  • 打赏
  • 举报
回复
sql=" begin tran
insert into rrt_table1 values(.........);insert into table2 values(......);insert into table3 values(......);insert into table4 values(......);insert into table5 values(......);insert into table6 values(......);
commit tran
"
chenqs70 2003-05-18
  • 打赏
  • 举报
回复
数据无插入的时候,都没有出错信息,真是奇怪。。
chenqs70 2003-05-18
  • 打赏
  • 举报
回复
数据有给SQL处理,但是SQL没有执行insert table2,table3,其他的表都不会有问题,就是表二,三在一天中会发生一次左右insert不进去。为什么?
chenqs70 2003-05-18
  • 打赏
  • 举报
回复
是我的数据处理有问题,代码没问题的
pengdali 2003-05-18
  • 打赏
  • 举报
回复
你不是数据的问题?
还是你的代码有问题?
chenqs70 2003-05-18
  • 打赏
  • 举报
回复
就是有时会写不进去,但是正常的时候是可以写进去的。
pengdali 2003-05-18
  • 打赏
  • 举报
回复
你做成存储过程来执行!

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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