【问题标题】:Microsoft SQL BCP Format File - Version?Microsoft SQL BCP 格式文件 - 版本?
【发布时间】:2017-08-20 23:35:47
【问题描述】:

我有一个关于 Microsoft SQL 的批量复制程序 (BCP.exe) 的问题。我对使用该程序比较陌生,所以希望这对某些人来说是一个简单的问题,但是我被卡住了!

在服务器 #1 上,我们运行 Microsoft SQL 2014,它运行 BCP 以导出多个表。它为我提供了每个表的 *.DAT 和 *.FMT 文件。

当我将此数据导入运行 Microsoft SQL 2012 的服务器 #2 时,我收到一个错误:

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 sql-server-2012 sql-server-2014 bcp sqlbulkcopy


【解决方案1】:

我通过安装 Microsoft® Command Line Utilities 11 for SQL Server® 并将 bcp.exe 位置添加到路径变量来设法解决了这个问题。现在我可以使用 bcp 11 导出版本 11,从而使导出的格式文件与 SQL 2012 兼容。您可以从这里下载它https://www.microsoft.com/en-us/download/details.aspx?id=36433

【讨论】:

  • 这只是为现有问题提供了一个解决方案。我会说 bcp 中有一个错误。我会尝试在 Microsoft 中添加一个案例。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-11
  • 2016-03-01
相关资源
最近更新 更多