Чтобы избавиться от дефисов, я добавляю в мои хранимые процедуры некоторый код, который будет выводить только заголовок столбца. Извлечение данных с помощью SQLCMD
выполняется в 2 части.
Сначала я вызываю хранимую процедуру со специальным набором параметров. В моем случае, когда я вызываю SP со всеми NULL, это означает, что я хочу иметь заголовок столбца.
Затем я вызываю SQLCMD
второй раз и добавляю вывод в файл, который я только что создал, и вуаля!
Создать пустой CSV-файл для хранения заголовка столбца
sqlcmd -S server -d database -U username -P password -o "somefile.csv" -h-1
-Q "exec myStoredProcedure NULL, NULL" -W -w 2000 -s"," > sometextfile.csv
Теперь добавьте результат вывода из хранимой процедуры
sqlcmd -S server -d database -U username -P password -o "somefile.csv" -h-1
-Q "exec myStoredProcedure 2011, 10" -W -w 2000 -s"," >> sometextfile.csv
Обратите внимание первая команда использует > , а вторая >> . При использовании одного -> «Создать или перезаписать» и двух -> «Добавить или создать».
- -h-1 удаляет заголовок, сгенерированный SQLCMD
- -W удаляет завершающие пробелы
- -w установить максимальную ширину строки
- -s определяет разделитель столбцов