我在数据库所在的服务器上使用以下命令创建了文本文件
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'
但我需要在另一台机器上创建该文本文件。因为我不想将该文本文件保存在生产中。请通过传递路径和/或传递特定服务器的凭据来建议我其他方式。如何在其他服务器上生成该文件?
答案 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导出数据。
我希望这会对你有所帮助。