使用SQLCMD.EXE导出CSV数据

时间:2010-10-08 15:09:34

标签: sql-server csv sqlcmd

我正在尝试将数据从SQL Server导出为CSV格式。我有一个蝙蝠任务来执行此操作,定期运行。命令是:

SQLCMD.EXE -d [db details] -i c:\export.sql -o c:\export.csv -s"," -W 

SQL文件只是视图中的SELECT *。

除了某些行在数据中有逗号外,这样做有效,因此需要引用这些值。我可以将列分隔符更改为“','”,但是我还需要SQL Server来转义数据中的单引号。

不幸的是,将分隔符更改为另一个字符不太可能在100%的情况下解决问题,因为其中一个字段包含来自另一个包含各种奇怪和精彩字符的应用程序的序列化数据。

有没有办法让我获得标准的引用CSV数据?

1 个答案:

答案 0 :(得分:11)

您应该能够修改SELECT语句以使用QUOTENAME函数。当然,您必须单独列出所有列,而不是使用SELECT *

注意:屏幕上可能难以阅读,但QUOTENAME的第二个参数是:

{single quote} {double quote} {single quote}

SELECT QUOTENAME(Column1, '"'), QUOTENAME(Column2, '"')
    FROM YourView