-->

bcp实用工具写信给远程服务器?(bcp Utility write to remote serve

2019-11-04 01:14发布

据一些建议我使用bcp实用工具来编写SQL server表,以.cvs文件,这样我以后可以将数据传输到informix表具有相同的结构。

我SQLServer的存储过程:

ALTER PROCEDURE [dbo].[TestCVS]
AS
BEGIN
declare @sql nvarchar(4000)

select @sql = 'bcp "select * from ML..gmp4vacationbalance" queryout c:\ss\Tom.cvs -c -t, -T -S' + @@servername
exec master..xp_cmdshell @sql
END

我有一个关于这个程序的四个问题:

1 -如何让这个程序写入到remote server ,而不是本地服务器@@servername ,因为它没有固定允许特定服务器来访问我的SQL Server?

2,如何允许过滤特定的条件下查询:说我想写这样的查询:

select * from ML..gmp4vacationbalance where balance_date = @date AND emp_num = @empNum

3,当我执行的程序,我得到这样的数据:

为什么第三栏出现损坏这样的,它的varchar说明写在arabic

4,当我想通过管道来界定| 而不是逗号,像这样

select @sql = 'bcp "select * from ML..gmp4vacationbalance" queryout c:\ss\Tom.cvs -c -t| -T -S' + @@servername

我得到以下错误:

Answer 1:

问题1:从远程服务器写作

我假设你的意思是“从”没有“到”说。 指定形式的服务器名称ServerName\InstanceName ,而不是使用@@servername ,您将需要有权限访问其他服务器(因为你正在使用受信任的连接-T

问题2:如何参数添加到BCP声明

BCP是一个命令行实用程序没有的Transact-SQL的一部分。 你可以不加参数。 您可以格式化执行的命令行。 你必须让你的参数@date@empNum字符串将它们连接起来与SQL字符串的其余部分为命令行

问题3:在输出的字符有误

取而代之的-c使用-w输出Unicode字符

问题4:管道不能正常工作

与BCP一个共同的问题,简单地引用这样的管-t"|" 使该记录分隔符



文章来源: bcp Utility write to remote server?