如何在不同的服务器上保存由BCP命令创建的txt文件?

时间:2015-06-11 13:16:49

标签: sql sql-server

我在数据库所在的服务器上使用以下命令创建了文本文件

EXEC master.dbo.sp_configure 'show advanced options', 1 
RECONFIGURE EXEC master.dbo.sp_configure 'xp_cmdshell', 1 
RECONFIGURE EXEC xp_cmdshell 'bcp "SELECT top 10 macnum, Cus_name,Cus_Email FROM [VBOS_TSP].[dbo].[Cust_file]" queryout "d:\creatFile.txt" -T -c'

但我需要在另一台机器上创建该文本文件。因为我不想将该文本文件保存在生产中。请通过传递路径和/或传递特定服务器的凭据来建议我其他方式。如何在其他服务器上生成该文件?

2 个答案:

答案 0 :(得分:1)

其他计算机中的路径应该是共享路径,并且可以从此计算机访问,并且应具有要读/写的文件夹的完全权限。

我处理类似的场景,下面的代码格式适合我。授予权限后尝试一次

@LV_FILE_PATH='\\192.168.1.105\Folder\creatFile.txt'
@LV_SQLTXT='"SELECT top 10 macnum, Cus_name,Cus_Email FROM [VBOS_TSP].[dbo].[Cust_file]"'

SET @LV_CMDTXT =  'BCP ' + @LV_SQLTXT + ' QUERYOUT "' + @LV_FILE_PATH + '" -c -U -T -S -r\n'
EXEC MASTER..XP_CMDSHELL @LV_CMDTXT

答案 1 :(得分:0)

您不能在bcp上使用unc路径进行查询。您唯一的解决方案是将其导出到当前计算机上,然后再将其复制。

另一个想法是在远程maschine上运行bcp并连接到数据存储区以使用参数-S导出数据。

我希望这会对你有所帮助。