我正在尝试将数据从 SQL Server 导出为 CSV 格式。我有一个定期运行的 bat 任务来执行此操作。命令是:
SQLCMD.EXE -d [db details] -i c:\export.sql -o c:\export.csv -s"," -W
SQL 文件只是 View 中的 SELECT *。
此方法有效,只是某些行在数据中包含逗号,因此需要用引号引起来的值。我可以将列分隔符更改为“','”,但随后我还需要 SQL Server 转义数据中的单引号。
不幸的是,将分隔符更改为另一个字符不太可能在 100% 的情况下解决问题,因为其中一个字段包含来自另一个应用程序的序列化数据,其中包含各种奇怪而奇妙的字符。
有什么方法可以让我获得标准的、引用的 CSV 数据吗?
最佳答案
您应该能够修改 SELECT 语句以使用 QUOTENAME功能。当然,您必须单独列出所有列,而不是使用 SELECT *
。
注意:在屏幕上可能很难阅读,但 QUOTENAME 的第二个参数是:
{单引号} {双引号} {单引号}
SELECT QUOTENAME(Column1, '"'), QUOTENAME(Column2, '"')
FROM YourView
关于sql-server - 使用 SQLCMD.EXE 导出 CSV 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3891871/