我是SQL Server上的BCP新手,我已经检查了http://msdn.microsoft.com/en-us/library/ms162802.aspx以了解如何使用BCP参数。 field_terminator的参数是-t,如果我想在每个字段之间放一个逗号我放'-t',那没关系。 但是如何在字段之间指定一个空的“空格”?
我有alredy试图不放'-t'参数,但默认情况下它是一个TAB ...
谢谢
编辑:对不起,我不够精确,它是用于带有SQL查询的BCP EXPORT,如'BCP "select * from ##OutputTable' + '" queryout \\server\filename_' + CONVERT(VARCHAR(10), @CurrentID) + '.upl -t , -w -T -S' + @InstanceName
答案 0 :(得分:2)
文档中没有提供太多详细信息。对于空格分隔的日志,BCP实际上需要十六进制表示(0x20
)。这在cmd行中对我有用:
bcp webLogs.dbo.iisLogs IN C:\temp\logs\ex170112.log -c -t0x20 -S localhost\SQLEXPRESS -T
答案 1 :(得分:0)
与批量插入答案类似,您应该能够使用-t' '
将空格指定为字段终止符。
'BCP "select * from ##OutputTable' + '" queryout \\server\filename_' + CONVERT(VARCHAR(10), @CurrentID) + '.upl -t' ' -w -T -S' + @InstanceName
答案 2 :(得分:0)
当我使用\ 0终止符(空终止符)时,我设置为输出的文本文件在每个列值之间有一个空格。也许这是你需要使用的那个。
答案 3 :(得分:-1)
尝试使用以下示例,但使用空格''而不是逗号。
USE AdventureWorks;
GO
BULK INSERT myDepartment FROM 'C:\myDepartment-c-t.txt'
WITH (
DATAFILETYPE = 'char',
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
);
GO