Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 sqlcmd и заголовки в файле  [new]
vjut
Member

Откуда: Moscow
Сообщений: 142
Необходимо выгрузить результат работы запроса в csv формат. DTS и SSIS на сервере нету, решил взять sqlcmd. Да вот беда, при выводе заголовка, после наименования столбцов идет строка разделитель.
Как её убрать? Естественно она мешает, так как полученный файл обрабатывается атоматически.
26 июн 09, 00:53    [7345561]     Ответить | Цитировать Сообщить модератору
 Re: sqlcmd и заголовки в файле  [new]
vov@
Member

Откуда: Днепропетровск
Сообщений: 110
что такое sqlcmd
почему не хочешь воспользоваться простым bcp
26 июн 09, 02:58    [7345745]     Ответить | Цитировать Сообщить модератору
 Re: sqlcmd и заголовки в файле  [new]
lexusXXX
Member

Откуда: Krasnoyarsk
Сообщений: 63
sp_OACreate 'Scripting.FileSystemObject' тебе в помощь, может создавать файлы, писать и дописывать в них.
26 июн 09, 05:23    [7345840]     Ответить | Цитировать Сообщить модератору
 Re: sqlcmd и заголовки в файле  [new]
nosov
Guest
sqlcmd имеет встроенную справку


Z:\>sqlcmd -?
Microsoft (R) SQL Server Command Line Tool
Version 9.00.1399.06 NT INTEL X86
Copyright (c) Microsoft Corporation.  All rights reserved.

usage: Sqlcmd            [-U login id]          [-P password]
  [-S server]            [-H hostname]          [-E trusted connection]
  [-d use database name] [-l login timeout]     [-t query timeout]
  [-h headers]           [-s colseparator]      [-w screen width]
  [-a packetsize]        [-e echo input]        [-I Enable Quoted Identifiers]
  [-c cmdend]            [-L[c] list servers[clean output]]
  [-q "cmdline query"]   [-Q "cmdline query" and exit]
  [-m errorlevel]        [-V severitylevel]     [-W remove trailing spaces]
  [-u unicode output]    [-r[0|1] msgs to stderr]
  [-i inputfile]         [-o outputfile]        [-z new password]
  [-f <codepage> | i:<codepage>[,o:<codepage>]] [-Z new password and exit]
  [-k[1|2] remove[replace] control characters]
  [-y variable length type display width]
  [-Y fixed length type display width]
  [-p[1] print statistics[colon format]]
  [-R use client regional setting]
  [-b On error batch abort]
  [-v var = "value"...]  [-A dedicated admin connection]
  [-X[1] disable commands, startup script, enviroment variables [and exit]]
  [-x disable variable substitution]
  [-? show syntax summary]

Z:\>
26 июн 09, 09:37    [7346126]     Ответить | Цитировать Сообщить модератору
 Re: sqlcmd и заголовки в файле  [new]
vjut
Member

Откуда: Moscow
Сообщений: 142
vov@,

Потому что в sqlcmd есть параметры передаваемые в запрос. в bcp - нету. :(
26 июн 09, 19:28    [7350242]     Ответить | Цитировать Сообщить модератору
 Re: sqlcmd и заголовки в файле  [new]
vjut
Member

Откуда: Moscow
Сообщений: 142
lexusXXX
sp_OACreate 'Scripting.FileSystemObject' тебе в помощь, может создавать файлы, писать и дописывать в них.

Доступа к файловой системе в контексте сервера нету. Куда FileSystemObject класть будет?
26 июн 09, 19:31    [7350249]     Ответить | Цитировать Сообщить модератору
 Re: sqlcmd и заголовки в файле  [new]
vjut
Member

Откуда: Moscow
Сообщений: 142
nosov,
Извините, но справку здесь цитировать излишне. В справке нет такого ключа. Можно или совсем убрать заголовки или регулировать после скольких записей шапка будет повторяться.
А чтобы убрать разделитель между шапкой и данными - нету. :(
26 июн 09, 19:35    [7350260]     Ответить | Цитировать Сообщить модератору
 Re: sqlcmd и заголовки в файле  [new]
vjut
Member

Откуда: Moscow
Сообщений: 142
Пробовал использовать vbscript, но больно долго это чудо работает. Особенно запись в файл.
Эх придется писать костыль который патчит файл сделанный sqlcmd...
26 июн 09, 19:37    [7350267]     Ответить | Цитировать Сообщить модератору
 Re: sqlcmd и заголовки в файле  [new]
Glory
Member

Откуда:
Сообщений: 104760
vjut
Пробовал использовать vbscript, но больно долго это чудо работает. Особенно запись в файл.
Эх придется писать костыль который патчит файл сделанный sqlcmd...

А может лучше потратить это время не разбор ключей запуска sqlcmd ?
26 июн 09, 19:50    [7350293]     Ответить | Цитировать Сообщить модератору
 Re: sqlcmd и заголовки в файле  [new]
vjut
Member

Откуда: Moscow
Сообщений: 142
Glory
vjut
Пробовал использовать vbscript, но больно долго это чудо работает. Особенно запись в файл.
Эх придется писать костыль который патчит файл сделанный sqlcmd...

А может лучше потратить это время не разбор ключей запуска sqlcmd ?

Glory, так перерыл уже всю документацию, на русском/английском (даже на мсдн зашел), по форумам полазил, нашел подобный вопрос на буржуйских сайтах (так и не решенный судя по дате). Ничего.
26 июн 09, 19:55    [7350300]     Ответить | Цитировать Сообщить модератору
 Re: sqlcmd и заголовки в файле  [new]
Glory
Member

Откуда:
Сообщений: 104760
А как тогда понимать эту цитату из оффициального хелпа ? Или он не попал в сферу вашего"перерыл уже всю документацию" ?

-h headers
Specifies the number of rows to print between the column headings. The default is to print headings one time for each set of query results. This option sets the sqlcmd scripting variable SQLCMDHEADERS. Use -1 to specify that headers must not be printed. Any value that is not valid causes sqlcmd to generate an error message and then exit.
26 июн 09, 20:00    [7350313]     Ответить | Цитировать Сообщить модератору
 Re: sqlcmd и заголовки в файле  [new]
vjut
Member

Откуда: Moscow
Сообщений: 142
Glory
А как тогда понимать эту цитату из оффициального хелпа ? Или он не попал в сферу вашего"перерыл уже всю документацию" ?

-h headers
Specifies the number of rows to print between the column headings. The default is to print headings one time for each set of query results. This option sets the sqlcmd scripting variable SQLCMDHEADERS. Use -1 to specify that headers must not be printed. Any value that is not valid causes sqlcmd to generate an error message and then exit.


Понимаю и пробую совершенно конкретно.
-h -1 убирает вывод заголовков вообще
-h [n] повторяет заголовок через n строк данных.

Т.е.

-h 2

заголовок
---------
данные1
данные2
заголовок
---------
данные3
данные4

вот эту строчку с дефисами - не убрать никак!

-h 0
не прокатывает, сами попробуйте.
26 июн 09, 20:11    [7350328]     Ответить | Цитировать Сообщить модератору
 Re: sqlcmd и заголовки в файле  [new]
gst123
Guest
если строк меньше чем 2147483647 (максимальное значение для параметра -h),
то указать его и всего делов-то
-h 2147483647 

другое дело, если строк больше, тогда наверное никак
21 июл 09, 14:03    [7440289]     Ответить | Цитировать Сообщить модератору
 Re: sqlcmd и заголовки в файле  [new]
vjut
Member

Откуда: Moscow
Сообщений: 142
gst123,

Вы читали, что я тут написал?
Убрать нужно не повтор заголовка, а строку с дефисами между заголовками и данными (при этом заголовки оставить)
нужно
заголовок
данные1
данные2
а sqlcmd выводит
заголовок
----------
данные1
данные2
Теперь всем видно разницу?
22 июл 09, 08:12    [7443041]     Ответить | Цитировать Сообщить модератору
 Re: sqlcmd и заголовки в файле  [new]
Дикий Билл
Member

Откуда:
Сообщений: 9538
Можно сначала одной командой вывести в файл строку заголовка (echo), а затем второй командой (sqlcmd) добавить в файл данные без заголовка.
22 июл 09, 08:48    [7443088]     Ответить | Цитировать Сообщить модератору
 Re: sqlcmd и заголовки в файле  [new]
vjut
Member

Откуда: Moscow
Сообщений: 142
Дикий Билл,

Откуда Echo знает заголовки запроса возвращаемые sqlcmd?
Запрос не один, под каждый из них свой echo писать замучаешься.
22 июл 09, 22:43    [7447987]     Ответить | Цитировать Сообщить модератору
 Re: sqlcmd и заголовки в файле  [new]
GlebZ
Member

Откуда: USA
Сообщений: 284
vjut
Пробовал использовать vbscript, но больно долго это чудо работает. Особенно запись в файл.
Эх придется писать костыль который патчит файл сделанный sqlcmd...

Костыль называется Regular Expressions
23 июл 09, 02:55    [7448548]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить