bcp queryout 不保存到本地
bcp queryout not saving to local
查询
EXEC xp_cmdshell 'bcp "select * from DEV.DBO.visit" queryout "c:\users\visit.txt" -c -T'
以上工作正常并在远程服务器上保存输出;
我在这里要做的是将它保存在我的机器上
我从
开始 SQL
亚历克斯
我最近遇到了这个问题。 queryout
的结果写入数据库服务器。解决此问题的一种方法是使用 ftp
将生成的文件从(远程)服务器传输到本地计算机。
您也可以要求 DBA 提供权限,以便 SSMS 客户端可以写入您的本地计算机。
当您 运行 xp_cmdshell
时,您实际上是在 运行 在 SQL 服务器 上执行命令 : C:盘是SQL服务器的硬盘。要将输出保存到您的计算机,您的计算机必须具有对 SQL 服务器可见的网络共享。然后你可以运行这样的命令:
EXEC xp_cmdshell 'bcp "select * from DEV.DBO.visit"
queryout "\my-computer\my-share\users\visit.txt" -c -T'
但是,由于该命令是 运行ning 在 SQL 服务器的凭据下,该共享也必须可由 SQL 服务器帐户写入。这可能不是。
更大的问题是,为什么你在服务器上 运行ning bcp
而不是 运行ning bcp
本地?
打开命令 shell,然后说:
bcp "select * from dev.dbo.visit"
queryout c:\my-bcp-output-data.txt
-S some-sql-server-instance
-T
查询
EXEC xp_cmdshell 'bcp "select * from DEV.DBO.visit" queryout "c:\users\visit.txt" -c -T'
以上工作正常并在远程服务器上保存输出; 我在这里要做的是将它保存在我的机器上 我从
开始 SQL亚历克斯
我最近遇到了这个问题。 queryout
的结果写入数据库服务器。解决此问题的一种方法是使用 ftp
将生成的文件从(远程)服务器传输到本地计算机。
您也可以要求 DBA 提供权限,以便 SSMS 客户端可以写入您的本地计算机。
当您 运行 xp_cmdshell
时,您实际上是在 运行 在 SQL 服务器 上执行命令 : C:盘是SQL服务器的硬盘。要将输出保存到您的计算机,您的计算机必须具有对 SQL 服务器可见的网络共享。然后你可以运行这样的命令:
EXEC xp_cmdshell 'bcp "select * from DEV.DBO.visit"
queryout "\my-computer\my-share\users\visit.txt" -c -T'
但是,由于该命令是 运行ning 在 SQL 服务器的凭据下,该共享也必须可由 SQL 服务器帐户写入。这可能不是。
更大的问题是,为什么你在服务器上 运行ning bcp
而不是 运行ning bcp
本地?
打开命令 shell,然后说:
bcp "select * from dev.dbo.visit"
queryout c:\my-bcp-output-data.txt
-S some-sql-server-instance
-T