BCP到.csv分隔符问题

时间:2014-11-09 21:57:38

标签: sql-server tsql csv bcp

我对使用bcp导出到csv显示结果的方式存在问题。

以下工作正常,但以逗号分隔,因此无法满足我的需要。

DECLARE @sql VARCHAR(8000)

SET @sql = 'bcp "SELECT * FROM db..viewname" queryout "C:\test.csv" -c –t, -T -S <SERVERNAME>'

EXEC master..xp_cmdshell @sql

结果:

enter image description here

但如果我将“,”更改为管道(或其他任何东西),它就会中断。

DECLARE @sql VARCHAR(8000)

SET @sql = 'bcp "SELECT * FROM db..viewname" queryout "C:\test.csv" -c –t"|" -T -S <SERVERNAME>'

EXEC master..xp_cmdshell @sql

结果:

enter image description here

使用的视图是从带有WHERE子句的表中选择的简单列。

我在这里错过了什么..?

1 个答案:

答案 0 :(得分:0)

我知道这是一个老问题,但是昨天我才遇到这个问题。要添加管道定界符,您需要像这样用胡萝卜对管道进行转义:

-t^|

因此,像这样设置您的@SQL:

SET @sql = 'bcp "SELECT * FROM db..viewname" queryout "C:\test.csv" -c –t^| -T -S <SERVERNAME>'

希望这对某人有帮助。 :)