bcp queryout未保存到本地

时间:2015-08-05 22:14:07

标签: sql-server bcp

查询

EXEC xp_cmdshell 'bcp "select * from DEV.DBO.visit" queryout "c:\users\visit.txt" -c -T'

以上工作正常并将输出保存在远程服务器上; 我想在这里做的是将它保存在我的机器上 我从

启动了SQL

亚历

2 个答案:

答案 0 :(得分:1)

我最近遇到了这个问题。 queryout的结果写入数据库服务器。解决此问题的方法是使用ftp将生成的文件从(远程)服务器传输到本地计算机。

您还可以要求DBA提供权限,以便SSMS客户端可以写入本地计算机。

答案 1 :(得分:0)

当你运行xp_cmdshell时,你真的在​​SQL Server上运行命令 :C:驱动器是SQL Server的硬盘驱动器。要将输出保存到计算机,您的计算机必须具有SQL Server可见的网络共享。然后你可以像这样运行命令:

EXEC xp_cmdshell 'bcp "select * from DEV.DBO.visit"
  queryout "\\my-computer\my-share\users\visit.txt" -c -T'

但是,由于该命令在SQL Server的凭据下运行,因此该共享也必须可由SQL Server帐户写入。这可能不是。

更大的问题是, 为什么您在服务器上运行bcp而不是在本地运行bcp

打开一个命令shell,然后说:

bcp "select * from dev.dbo.visit"
  queryout c:\my-bcp-output-data.txt
  -S some-sql-server-instance
  -T