"元数据无法确定"从命令行使用bcp导入时

时间:2015-05-12 19:11:49

标签: sql-server bcp

我通常使用SQL Database Migration Wizard(SQLAzureMW)来编写脚本表,然后将它们导入新数据库,因为安全规则我通常在源数据库和目标数据库之间没有连接。但是,这次我没有使用bcp导入一些表。

我进一步深入研究并在托管源数据库的同一台机器上创建了一个临时测试数据库。我尝试使用SQLAzureMW脚本编写单个表并导入它。它工作正常,它还向我显示用于导入.dat脚本文件的命令:

0.0001

(我手动更改了上面的一些变量以保持通用)

但是,如果我尝试从命令行执行相同的命令,则会因以下错误输出而失败:

  

SQLState = S0002,NativeError = 208
  错误= [Microsoft] [SQL Server的ODBC驱动程序11] [SQL Server]无效的对象名称' dbName.dbo.tableName'。
  SQLState = 37000,NativeError = 11529
  错误= [Microsoft] [SQL Server的ODBC驱动程序11] [SQL Server]无法确定元数据,因为每个代码路径都会导致错误;查看其中一些错误。

我确定连接或表名参数没有错误,因为在这种情况下它会输出"登录失败" (错误的服务器,用户,密码或数据库名称)。

在运行我应该执行的bcp.exe "dbName.dbo.tableName" in "c:\pathTo\dbo.tableName.dat" -E -n -C RAW -b 1000 -a 4096 -q -S targetServerAddress -U "dbUser" -P "dbPassword"命令之前,SQLAzureMW是否运行了任何过程?如果我只使用该应用程序进行导入会很棒,因为我已经拥有bcp个文件......

1 个答案:

答案 0 :(得分:0)

找到解决方案。完成所选数据库表的脚本生成后,SQLAzureMW有一个“SQL脚本”选项卡。我已经复制了整个脚本,并在我要导入.dat脚本表的空数据库中执行。这个脚本有创建表的说明 - 显然,.dat文件由于未知原因没有这样做,因为我已经多次重复备份过程,检查选项“带有数据的模式表”。

SQLAzureMW after scripts generation

重要的是要注意我在旧版本的应用程序中没有使用它。我无法重新测试,因为我已经在每台机器上更新了它,我无法再下载旧版本了。