切换到bcp

时间:2015-08-17 23:28:46

标签: sql sql-server export-to-csv bcp

我在文档中没有看到如何在我的csv类型的输出文件中包含列标题。我确定这是重复的,但我似乎无法找到能够满足我的确切需求。

这是我的命令:

 bcp "select * from MYDB.dbo.MyTable" queryout "C:\outputfile.csv" -c -t"," -r"\n" -S ServerName -T -k -E

2 个答案:

答案 0 :(得分:1)

一个众所周知的标准hack是选择列名联合所有使它们成为查询本身的一部分并导出它,就像这样......

bcp "SELECT 'ColName1','ColName2','ColName3' UNION ALL select ColName1,ColName2,ColName3 from MYDB.dbo.MyTable" queryout "C:\outputfile.csv" -c -t"," -r"\n" -S ServerName -T -k -E

答案 1 :(得分:0)

@ M.Ali解决方案完美运行。您还可以使用以下内容更动态地包含各列:

DECLARE @ColumnHeader varchar(8000)
SELECT @ColumnHeader =  COALESCE(@ColumnHeader+',' ,'')+ ''''+column_name +'''' 
FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='tblA';