Sql server 使用SQL Server存储过程导出csv文件中的表数据

Sql server 使用SQL Server存储过程导出csv文件中的表数据,sql-server,sql-server-2012,Sql Server,Sql Server 2012,我有以下要求: 使用存储过程将表数据导出到.csv文件中 .csv文件中的第一行将是自定义标题 注意:此行中的数据不会来自表。它将是所有生成的.csv的固定标题 与此类似: Latest price data: product1;150;20150727 product2;180;20150727 product3;180;20150727 假设date是一个正确的datetime列,以下过程至少会对名为prodtbl的表执行此操作: CREATE proc csvexp (@header a

我有以下要求:

  • 使用存储过程将表数据导出到
    .csv
    文件中
  • .csv
    文件中的第一行将是自定义标题
  • 注意:此行中的数据不会来自表。它将是所有生成的
    .csv
    的固定标题

    与此类似:

    Latest price data:
    product1;150;20150727
    product2;180;20150727
    product3;180;20150727
    

    假设
    date
    是一个正确的
    datetime
    列,以下过程至少会对名为
    prodtbl
    的表执行此操作:

    CREATE proc csvexp (@header as nvarchar(256)) AS
    BEGIN
     SELECT csv FROM (
      SELECT prod,date,prod+';'+CAST(price AS varchar(8))+';'
            +replace(CONVERT(varchar,getdate(),102),'.','') csv
      FROM prodtbl
      UNION ALL
      SELECT null,'1/1/1900',@header
     ) csvexp ORDER BY prod,date
    END
    
    命令

    EXEC csvexp 'my very own csv export'
    
    然后将生成以下输出:

    my very own csv export
    product1;150;20150727
    product2;180;20150727
    product3;180;20150727
    

    将此输出实际放入
    .csv
    文件的部分仍有待完成…

    您使用的是sql server 2008、2008R2还是2012???您标记了所有这些文件,但没有帮助。您可以通过运行xp_cmdshell+bcp来完成此操作,并通过从其他文件复制标头来处理标头,但我不认为您应该在SQL Server过程中执行此操作感谢JamesZ的响应,但我正在寻找一些不使用xp#u cmdshell的解决方案。感谢cars10的响应,但它不会有帮助,因为它会显示如上所示的输出。它只显示最后一列和标题。