如何创建从SQL Server生成CSV文件的存储过程

时间:2017-02-21 17:56:38

标签: sql-server sql-server-2008 csv sql-server-2012 sql-server-2008-r2

我想根据数据表中的数据生成.CSV文件。我之前已经问过这个问题,但是我找不到任何关于如何指定分隔符的例子。

例如,如果我有一个表和这样的查询,这就是我想要的输出:

MyTable的:

Id - Int Key
NickName- NvarChar
REALName - NvarChar
Number - NvarChar
Updated - bit

查询:

SELECT * 
FROM MyTable 
WHERE Updated = 1

输出:

我希望我的输出使用|作为字段分隔符。因此,CSV文件中的输出将如下所示:

Id|NickName|REALName|Number|Updated
1|NickNameHere|RealNameHere|0798548558|1
2|NickNameHere2|RealNameHere2|079948558|1

等等。

1 个答案:

答案 0 :(得分:0)

以下查询使用“|”生成CSV数据分隔符

select 'Id|NickName|REALName|Number|Updated'
union all
select
       cast (Id as nvarchar) + '|'
       + NickName  + '|'
       + RealNameHere  + '|'
       + Number + '|'
       + cast (Updated as nvarchar)
    from MyTable 
    WHERE Updated = 1

将输出结果保存到TextFile:

方法1 :来自SSMS

从ssms菜单:查询 - >结果 - >结果归档

方法2 :使用Powershell Invoke-SqlCmd

 Invoke-SqlCmd -Query "your query" | Export-Csv "path\to\csvfile"

方法3 :使用SqlCmd命令行工具:

sqlcmd -q "your query" -o "path\to\csvfile" -S server -P password -d database