【问题标题】:Switch to include column headers in bcp切换以在 bcp 中包含列标题
【发布时间】:2015-11-10 17:37:28
【问题描述】:

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

这是我的命令:

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

【问题讨论】:

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


    【解决方案1】:

    一个众所周知的标准技巧是选择列名 union all 使它们成为查询本身的一部分并将其导出,就像这样......

    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
    

    【讨论】:

    • 谢谢!证实了我在其他地方看到的。很惊讶这个功能并不是 bcp 本身固有的。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2011-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多