查询
EXEC xp_cmdshell 'bcp "select * from DEV.DBO.visit" queryout "c:\users\visit.txt" -c -T'
以上工作正常并将输出保存在远程服务器上; 我想在这里做的是将它保存在我的机器上 我从
启动了SQL亚历
答案 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