2013-06-11 1 views
8

Вот мой упрощенный сценарий:Sqlcmd замыкающие пробелы в выходном файле

У меня есть таблица в SQL Server 2005 с одного столбца типа varchar(500). Данные в столбце всегда содержат 350 символов.

Когда я запускаю выбор в нем в редакторе запросов SSMS, копия & вставляет результат в текстовый файл, длина строки в файле равна 350, что соответствует фактической длине данных.

Но когда я использую sqlcmd с параметром -o, результирующий файл имеет длину 500, которая соответствует максимальной длине varchar(500).

Так что вопрос заключается в том, что без каких-либо строковых функций в select, есть ли способ, чтобы sqlcmd знал, что не следует относиться к нему как char(500)?

ответ

13

Вы можете использовать опцию sqlcmd форматирования -W, чтобы удалить конечные пробелы из выходного файла.

Подробнее об этом MSDN article.

+0

Я уверен, что было что-то причудливое о том, что я действительно хотел, потому что в то время я пытался -W, и это не помогло. Либо я сделал что-то неправильно, либо забыл, что мне нужно, но ваш ответ решает то, что я задал в сообщении. Благодарю. – Brian

+0

Думал, я сошел с ума, пока не нашел это! – Adam

0

-W работает только с размером по умолчанию 256 для столбцов с переменным размером. Если вы хотите больше, чем вы должны использовать -y модификатор, который скажет вам, что он является взаимоисключающим с -W. В основном вам не повезло, и, как в моем случае, файл растет от 0.5M до 172M. Вы должны использовать другие способы для разделения генерации почтового файла белого пространства. Некоторая команда PowerShell или что-то в этом роде.

+0

arrrrgghhhhh ... – Adam

 Смежные вопросы

  • Нет связанных вопросов^_^