Экспорт данных CSV с использованием SQLCMD.EXE - PullRequest
11 голосов
/ 08 октября 2010

Я пытаюсь экспортировать данные из 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 Ответ

11 голосов
/ 08 октября 2010

Вы должны иметь возможность изменить оператор SELECT для использования функции QUOTENAME .Конечно, вам придется перечислять все столбцы по отдельности, а не с помощью SELECT *.

Примечание. Может быть трудно прочитать на экране, но второй параметр для QUOTENAME:

{одинарные кавычки} {двойные кавычки} {одинарные кавычки}

SELECT QUOTENAME(Column1, '"'), QUOTENAME(Column2, '"')
    FROM YourView
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...