【问题标题】:BCP - Export CSV with headerBCP - 导出带有标题的 CSV
【发布时间】:2020-07-01 11:59:45
【问题描述】:

我已运行以下查询以将我的 Ms SQL 表导出为 CSV。它运作良好。现在我想将字段名称添加为第一行。怎么可能?

declare @sql varchar(8000)
select @sql = 'bcp "select * from test_table" queryout C:\Test_SP\Tom.csv -c -t, -T -S' + @@servername
exec master..xp_cmdshell @sql

我知道我可以指定@Red Devil 回答的名字。但是表是动态的,它的字段不是固定的,它会改变。我正在尝试找到一种从表定义中获取字段名称并将其添加到结果 CSV 中的方法

【问题讨论】:

  • @SMor ,不。因为表格是动态的。我不知道字段名称
  • 重点还是一样——努力,在网上搜索一下。这不是免费的 编码服务。你有足够多的代表知道这一点。需要知道 test_table 中存在哪些列?您查看元数据 - sys.columns。
  • @SMor 这是我处理 MS SQL 的第一周。我搜索了很多,但没有找到 bcp 的解决方案
  • 你应该修改你的标题以包含对动态列的需求

标签: sql-server csv bcp


【解决方案1】:

试试这个:

declare @sql varchar(8000)
select @sql = 'bcp "select 'col1', 'col2',... union all select * from test_table" queryout C:\Test_SP\Tom.csv -c -t, -T -S' + @@servername
exec master..xp_cmdshell @sql

【讨论】:

  • 谢谢,但是我的表有动态创建的字段。我不确定每次的字段名称
  • 从 INFORMATION_SCHEMA.COLUMNS 系统视图中获取列信息。
猜你喜欢
  • 2022-12-18
  • 2020-01-17
  • 2020-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-28
  • 2014-07-18
  • 1970-01-01
  • 2023-03-29
相关资源
最近更新 更多