Microsoft SQL BCP格式文件-版本?
我有一个关于Microsoft SQL的大容量复制程序(BCP.exe)的问题。我对使用这个程序还比较陌生,所以我希望对一些人来说这是一个简单的问题,但是我被卡住了 在服务器1上,我们运行的是Microsoft SQL 2014,它运行BCP导出许多表。它为我提供了每个表的*.DAT和*.FMT文件 当我将此数据导入到运行Microsoft SQL 2012的服务器2时,我收到一个错误:Microsoft SQL BCP格式文件-版本?,sql,sql-server-2012,sql-server-2014,bcp,sqlbulkcopy,Sql,Sql Server 2012,Sql Server 2014,Bcp,Sqlbulkcopy,我有一个关于Microsoft SQL的大容量复制程序(BCP.exe)的问题。我对使用这个程序还比较陌生,所以我希望对一些人来说这是一个简单的问题,但是我被卡住了 在服务器1上,我们运行的是Microsoft SQL 2014,它运行BCP导出许多表。它为我提供了每个表的*.DAT和*.FMT文件 当我将此数据导入到运行Microsoft SQL 2012的服务器2时,我收到一个错误: SQLState = HY000, NativeError = 0Error = [Microsoft][S
SQLState = HY000, NativeError = 0Error = [Microsoft][SQL Server Native Client 11.0][SQL Server]Syntax error at line 2 column 0 in xml format file. | Exit Code: 1
我读到使用BCP从较新的SQL版本转换到较旧的SQL版本时出现版本控制问题,并很快找到了手动修复此问题的方法
您可能知道,在FMT文件中,第一行包含导出数据的SQL版本号,在本例中为12.0。如果我将其更改为11.0(或10.0),则重新运行导入一切正常
以下是编辑第一行之前的FMT文件示例:
12.0
6
1 SQLNCHAR 2 72 "" 1 ListID SQL_Latin1_General_CP1_CI_AS
2 SQLNCHAR 2 32 "" 2 EditSequence SQL_Latin1_General_CP1_CI_AS
3 SQLNCHAR 2 62 "" 3 Name SQL_Latin1_General_CP1_CI_AS
4 SQLBIT 1 1 "" 4 IsActive ""
5 SQLNCHAR 2 30 "" 5 PriceLevelType SQL_Latin1_General_CP1_CI_AS
6 SQLDECIMAL 1 19 "" 6 PriceLevelFixedPercentage
虽然我可以手动修复此问题,但我需要将此系统自动化,以便定期运行,因此这不是一个长期解决方案。请帮助!有什么我能做的吗
我需要修复导出,使其使用v11.0或更旧版本,或者修复导入,使其识别v12.0。我已经尝试在导入和导出上都使用-V标志,但是这对两端都没有影响
提前感谢您的专家建议 我通过为SQL Server®安装Microsoft®命令行实用程序11并将bcp.exe位置添加到路径变量中,成功地解决了这个问题。现在,我可以使用bcp 11导出版本11,从而使导出的格式文件与SQL 2012兼容。你可以从这里下载我的问题和这个一样。你明白了吗?然而,这只是为现有问题提供了一个解决方案。我想说的是bcp中有一个bug。我将尝试在Microsoft中添加一个案例。