急!请GGJJ们帮忙,bcp问题
<p>bcp的时候出错拉:</p><p>Internal error: in table 'card', database 4, the forwarded row (2386826, 32)<br/>pointed to by (2386824, 4) is invalid. Aborting the transaction.<br/></p><p>我们的dbcc alloctable了好像也没有修复成功。有没有高手帮忙看一看。在线等。急!</p> 空表BCP IN?<br/> 不是。。是bcp out.这个是个销售流水表。比较大 大概有多少数据,另外导出的时候,有没有报异常 <p>唉。是这样的。我们这个流水表。要经常增删改,前段时间select出来update的时候报错。大概意思是这条记录,从索引中丢失了。后来dbcc过一次。后来又发现select不出来记录的情况.重建了所有的索引,包括主键,问题依旧,这时候才意识到问题的严重,我们bcp的时候到2000万的时候就出了这个错。。总共2200多万条。还有200多万条出不来。bcp就报的这个错误!</p><p>Internal error: in table 'card', database 4, the forwarded row (2386826, 32)<br/>pointed to by (2386824, 4) is invalid. Aborting the transaction.</p><p>希望大家能帮帮我!</p>[此贴子已经被作者于2007-4-4 15:59:29编辑过]
该行(2386826页,32行)forward 到 2386824页第4行,但2386624/4的数据不正确,恢复的可能性不好说,可以考虑去掉此行记录<br/> <p>估计表在存储上就已经出了问题,出问题的数据可能恢复不了了</p><p>不知道你的这张表的数据的重要性,看看这样是否可以:</p><p>首先定位出问题的位置,因为你在bcp导出的时候在一个地方报错了,记录该位置的行数,比如20000001这个地方报错</p><p>那么你尝试分批导出</p><p>bcp database_name..card out card.dat -Uuser -Ppasswd -Sserver -F1 -L20000000 -c -t "|"</p><p>若上部能正确导出,那么再试着导出后面的部分</p><p>bcp database_name..card out card.dat -Uuser -Ppasswd -Sserver -F20000100 -c -t "|"</p><p>若也能正确导出,那么就再缩小范围导出,如此往复</p><p>bcp database_name..card out card.dat -Uuser -Ppasswd -Sserver -F20000050 -L20000099 -c -t "|"</p><p>bcp database_name..card out card.dat -Uuser -Ppasswd -Sserver -F20000025 -L20000049 -c -t "|"</p><p>bcp database_name..card out card.dat -Uuser -Ppasswd -Sserver -F20000010 -L20000024 -c -t "|"</p><p>......</p><p>没有这样做过,不知道是否可行,司马当活马医吧,呵呵呵</p> <p>谢谢楼上的朋友们,</p><p>偶第一个想的办法就是-F跳过去。。可每次提示都像上而一样。报数据损坏了。</p><p>我也找到了出问题的行。。但是删除就报这条数据从索引里丢掉了。要重建索引。可索引重建到</p><p>这一行就报数据损坏</p><p>。。唉。。。我要死了。</p>
页:
[1]