日期:2014-05-18  浏览次数:20583 次

大家有没有遇到过因为网路问题而引起的SQL操作表错误?
使用CDMA无线连接的时候,经常发现表中会有多余数据出现。

都是使用的ADO直接连接的,经检查程序本身没有什么问题。

因为好几千个企业每个月操作一次数据库,总是大概只有几个单位

会出现重复记录。具体的表结构是一个主表的一条记录,对应

字表的N条记录。经常出现主表中有记录,而字表中无记录。

或者出现主表中有记录而字表中会出现重复的2次N条记录。

请问这个问题改如何解决?

------解决方案--------------------
我个人认为还是程序的问题.

比如在插入数据前由于某个判断失误而造成的.

或者在插入主表和子表后判断插入语句是否都成功?否则回滚数据.
------解决方案--------------------
ROLLBACK WORK
将用户定义的事务回滚到事务的起点。

语法
ROLLBACK [ WORK ]

注释
该语句的功能与 ROLLBACK TRANSACTION 相同,除非 ROLLBACK TRANSACTION 接受用户定义的事务名称。不论是否指定可选的 WORK 关键字,该 ROLLBACK 语法都遵从 SQL-92 标准。

嵌套事务时,ROLLBACK WORK 始终回滚到最远的 BEGIN TRANSACTION 语句,并将 @@TRANCOUNT 系统函数减为 0。

权限
ROLLBACK WORK 权限默认授予任何有效用户。


------解决方案--------------------
你的主表和子表沒有建產關聯
------解决方案--------------------
用程序的话,不建立关联也行.
------解决方案--------------------
应该是程序判断和控制问题
检查事务提交、回滚的控制。

------解决方案--------------------
主表和字表应同时提交和回滚
------解决方案--------------------
程序判断没有写好,要增加一个事务