BCP.exe Out无法识别表,因此可以将其写入文件

时间:2018-04-13 20:18:43

标签: sql sql-server csv bcp

当我跑步时:

EXEC MASTER..xp_cmdshell 'bcp [ServerName\Instance].[DB_Name].[dbo].[r] out
 "C:\0\folder\subfolder\filename.csv" -c -t "|" -T' 

我收到错误消息:

A valid table name is required for in, out, or format options.

我的目标是简单地将名为r的表的内容导出到管道分隔文件。该行在脚本中多次使用,具有不同的输出文件名。表r被丢弃并且每次从不同的表(不是在循环或光标中)中以不同的内容重新创建多次。第一次运行上面的代码块时发生错误。

  • 这是在SQL Server 2014,Management Studio 12.0.5000上。
  • 当安装了存储数据库的卷时,此脚本运行正常 另一台运行SQL Server 2014的计算机上。
  • 我跑了: EXEC sp_configure 'show advanced options', 1 EXEC sp_configure 'xp_cmdshell', 1 随着: RECONFIGURE
  • 我是数据库所有者。
  • 本地路径" C:\ 0 \ folder \ subfolder \"存在。
  • 我可以使用查询成功选择和查看表格内容:

    `Select * From [ServerName\Instance].[DB_Name].[dbo].[r]`
    
  • 在添加代码[ServerName\Instance]之前,错误消息msg表示它无法打开连接。

  • 当我搜索上面的错误消息时,会显示三个结果,但没有一个会解决我的问题。

1 个答案:

答案 0 :(得分:0)

正如@James Z所说,你需要指定server_name[\instance_name]。您还需要在[ServerName\Instance].

之前删除[DB_Name]...

因此,您的命令应如下所示:

EXEC MASTER..xp_cmdshell 'bcp [DB_Name].[dbo].[r] out
 "C:\0\folder\subfolder\filename.csv" -c -t "|" -T -S ServerName\Instance'