2

我是 SQL Server 上 BCP 的新手,我已在http://msdn.microsoft.com/en-us/library/ms162802.aspx上查看以了解如何使用 BCP 参数。field_terminator 的参数是-t,如果我想在每个字段之间放一个逗号,我放'-t,',没关系。

但是如何在字段之间指定一个空白的“空格”?

我已经尝试不放置-t参数,但默认情况下它是一个 TAB ......

编辑:对不起,我不够精确;它用于 BCP EXPORT,带有 sql 查询,例如

'BCP "select * from ##OutputTable' + '" queryout \\server\filename_' 
   + CONVERT(VARCHAR(10), @CurrentID) + '.upl -t , -w -T -S' + @InstanceName
4

4 回答 4

2

该文档没有提供太多关于此的详细信息。BCP 实际上需要十六进制表示 ( 0x20) 用于以空格分隔的日志。这在 cmd 行中对我有用:

bcp webLogs.dbo.iisLogs IN C:\temp\logs\ex170112.log -c -t0x20 -S localhost\SQLEXPRESS -T
于 2017-04-12T14:44:18.803 回答
0

与批量插入答案类似,您应该能够使用-t' '将空格指定为字段终止符。

'BCP "select * from ##OutputTable' + '" queryout \\server\filename_' 
   + CONVERT(VARCHAR(10), @CurrentID) + '.upl -t' ' -w -T -S' + @InstanceName 
于 2013-11-06T17:56:28.010 回答
0

当我使用 \0 终止符(空终止符)时,我设置为输出的文本文件在每个列值之间都有一个空格。也许这是您需要使用的。

于 2014-06-03T20:24:02.653 回答
-1

尝试使用以下示例,但使用空格 ' ' 而不是逗号。

USE AdventureWorks;
GO
BULK INSERT myDepartment FROM 'C:\myDepartment-c-t.txt'
   WITH (
      DATAFILETYPE = 'char',
      FIELDTERMINATOR = ',',
      ROWTERMINATOR = '\n'
);
GO
于 2013-11-06T16:15:26.607 回答