我对使用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
结果:
但如果我将“,”更改为管道(或其他任何东西),它就会中断。
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
结果:
使用的视图是从带有WHERE子句的表中选择的简单列。
我在这里错过了什么..?
答案 0 :(得分:0)
我知道这是一个老问题,但是昨天我才遇到这个问题。要添加管道定界符,您需要像这样用胡萝卜对管道进行转义:
-t^|
因此,像这样设置您的@SQL:
SET @sql = 'bcp "SELECT * FROM db..viewname" queryout "C:\test.csv" -c –t^| -T -S <SERVERNAME>'
希望这对某人有帮助。 :)