12

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

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

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

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

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

有什么方法可以让我获得标准的、引用的 CSV 数据?

4

1 回答 1

13

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

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

{单引号} {双引号} {单引号}

SELECT QUOTENAME(Column1, '"'), QUOTENAME(Column2, '"')
    FROM YourView
于 2010-10-08T18:55:58.000 回答