有两个结构完全一样的数据库A、B,表的主键约束也是一样的。首先把数据全部导入到A里,再把A里的数据更新到B里,更新时判断B中是不是已经有了主键相同的记录,有了则删除原来的,插入新的。这是我要做的详细操作。
一开始A、B都是空的,都是新建的。然后将数据导入到A里时没有出问题;将A里数据导入到B里是报了“违反了Primary Key”的错误。从A到B我是用包含了游标的存储过程实现的。报错后,我查看数据库内数据,A里面的数据都全部插入到B里面了,用Profiler跟踪器跟踪显示存储过程也执行完成了,但是在C#代码里面的ExecuteNonQuery时就是报这个错。大家觉得哪里可能出问题,尽量帮帮我。谢谢各位了!
我处理的文件,有的文件是成功了的,并且数据库的结果是正确的,所以应该不是导入了两次。不知道是不是具体文件的错误。A里报错的那张表的记录数和B里报错的那张表的记录数是一样的,这样算不算全部导入了呢?本来是处理两个文件,第一个成功了,第二个报了这样的错误,我就重新创建了两个库,只处理第二个文件,还是出错,真是头疼。
追答那第二个文件里是不是本来就有重复的记录呢?
追问如果有的话,在处理好了导入到A的时候就应该报错啊,可是导入到A是正常的,只是更新的时候出错,而且数据库中显示数据都导入到B了,跟踪结果显示存储过程也执行完了,所以我就纳闷了。补充,A和B的结构和主键约束都一样。
追答还是觉得第二个文件本身有问题,因为你说第一个文件处理成功的,第二个出现的错误,所以我想第二个文件里应该有问题。
追问嗯,我也觉得是文件的问题,我好好查查文件,谢谢你啦!
我把我的存储过程分成两个信息发到您的个人信息里了,这里实在放不下,太长了,您帮忙看下,如果需要,我把里面引用到的别的存储过程也发给您,您一起给看看?谢谢啦!
追答没发给我啊,你查到重复数据后,执没执行DELETE操作啊。是不是少写了DELETE啊
追问发到你的站内消息里了
追答没收到,你加我发即时消息吧。
[email protected]
或者发我这邮箱里也行。
发你邮箱了。
追答给你发回去了,看下对不
我按照你说的这个试试,但愿能解决问题,谢谢!
本回答被提问者采纳