bcp导入导出数据发生异常解决方案

用BCP导出的数据,经常会遇到遇到EOF,字符串右截断之类的错误.
这些错误信息又很模糊,很难一下子定位到底是什么错误.

我总结了一下,自己遇到的几种情况
1.表结构不同
2.bcp版本不一致,在处理某些类型的时候,导致错位(比如sql2000中没有varchar(max),只有在sql2005中才有)
3.字段类型一致,字段长度一致,但是Nullable不同,也会导入失败

快速检查出,导入导出的2个表结构,是否一致,用下面的命令
bcp {dbname.dbo.Table}  format  nul  --f aa.txt -%DBSERVER% -U%DBUSERNAME% -P%DBPWD%

返回的数据内容
9.0
10
1       sqlINT        0       4          1     ID                                 
2       sqlINT        1       4          2     User_Accounts                      
3       sqlINT        1       4          3     MoneyNum                           
4       sqlINT        1       4          4     EventID                            
5       sqlNCHAR      2       400        5     Describe                 Chinese_PRC_CI_AS
6       sqlDATETIME   1       8          6     EventDate                          
7       sqlINT        1       4          7     ServerID                           
8       sqlINT        1       4          8     ServerType                         
9       sqlNCHAR      2       400        9     Remark                   Chinese_PRC_CI_AS
10      sqlINT        0       4          10    CurrentDianQuan                    

第一行是BCP版本,导入导出的时候,最好要一致.
第二行是字段数量
第三行开始,导入导出的2台电脑上,这2个文件的所有字段信息都要一致,就能解决导入出错的各种异常了.

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...