从远程计算机执行 BCP



我有一台服务器,其中包含sql数据库和管理器工作室,另一台服务器我想从中执行bcp命令。我可以使用(可能是.bat文件)在同一台服务器上生成.txt文件吗?或者有人有其他建议吗?它适用于对BD没有任何了解并且想要随时执行的人,所以我没有使用计划的工作。

我尝试了以下方法,它在第二台服务器上不起作用,但它在第一台服务器上显示了预期的结果。

DECLARE @SQL VARCHAR(255), @bcpc VARCHAR(8000)
SET @SQL = 'select * from BaseDatos.dbo.tabla'
SET @bcpc = 'bcp "' + @SQL + '" queryout'
SET @bcpc = @bcpc + ' c:testarchivo.txt -c -t"|" -Usa -P'
EXEC master..xp_cmdshell @bcpc
print @bcpc

您正在构建的 bcp 命令不包括用于指定要从哪个 SQL Server 获取数据的 -S 选项。我相信,如果它在您的"服务器 A"上工作,这是因为 BCP 必须默认为本地默认实例。但是,当您尝试在"服务器 B"上运行 BCP 命令时,您不再具有相同的默认 SQL Server 实例(如果有的话)。尝试将 -S 选项添加到 BCP 命令中以指定"服务器 A"的名称。

如果未使用 -S,Imma 请仔细检查"默认"服务器值。

是的。。。

-S server_name [\instance_name] 指定要连接到的 SQL Server 实例。如果未指定服务器,则 bcp 实用工具 连接到本地计算机上的 SQL Server 的默认实例。 从远程运行 bcp 命令时,此选项是必需的 网络上的计算机或本地命名实例。要连接到 服务器上 SQL Server 的默认实例,仅指定server_name。 若要连接到 SQL Server 的命名实例,请指定 server_name\instance_name。

怎么样

EXECUTE (master.xp_cmdshell@bcpc) AT server2

如果没有结果:

1) Basedatos.dbo.tabla 是否在服务器 2 上?如果没有,请创建一个链接服务器,以便可以引用 server1.basedatos.dbo.tabla 以便服务器 2 上运行的 BCP 从服务器 1 获取数据

2) 检查服务器上的所有权限 2.

最新更新