2013-06-04 1 views
0

Я использую SQLCMD запрос к базе данных SQL сервера из машины UBUNTU (драйвер ODBC был установлен для этой цели)SQLCMD не принимает пароль в качестве части исходной команды

Если я передаю следующую команду:

sqlcmd -S xyz -d xyz -U xyz 

У меня появляется запрос на ввод пароля, и я могу успешно запросить соответствующую базу данных. Но, если передать команду ниже, я получаю сообщение 'Login failed for user ****':

sqlcmd -S xyz -d xyz -U xyz -P xyz 

Мне нужно, чтобы иметь возможность отправлять пароль в один проход, как мне нужно, чтобы передать файл ввода запроса и направить вывод в определенном месте , Как только я войду в базу данных, ожидая приглашения пароля, я больше не могу указывать файлы ввода/вывода. Любые идеи были бы очень полезны

+0

Это отлично работает для меня: 'sqlcmd -S MyServer -U MyLogin -P password1 $'. Возможно, вы сможете проверить журнал ошибок для получения более подробной информации о [почему не удалось войти в систему] (http://blogs.msdn.com/b/sql_protocols/archive/2006/02/21/536201.aspx). И какая версия SQL Server у вас есть? Фактически вы можете указывать входные и выходные файлы [интерактивно] (http://msdn.microsoft.com/en-us/library/ms162773.aspx) в sqlcmd с помощью ': r' и': out'. – Pondlife

+0

Hi Pondlife, спасибо большое, что было действительно полезно. Мне удалось использовать: r и out: получить выход в указанном месте, но изо всех сил пытаться форматировать вывод, например. если я создам следующее во входном файле: -o -h -1 -s, -k2 -W Я получаю пустой вывод csv. У вас есть указатели на получение разделенного запятой результата? Еще раз спасибо – user2425937

+0

См. [Этот вопрос] (http://stackoverflow.com/questions/425379/how-to-export-data-as-csv-format-from-sql-server-using-sqlcmd/425463#425463), но это не сработает, если ваши данные содержат запятые. По моему опыту sqlcmd - очень плохой инструмент для генерации CSV или любого другого другого форматированного вывода. Для CSV лучше использовать [bcp] (http://msdn.microsoft.com/en-us/library/ms162802.aspx), если это возможно, но если вы копируете данные на другой SQL-сервер, то используйте собственный (двоичный), чтобы избежать проблем с форматированием. В противном случае сценарий на предпочитаемом вами языке обычно дает лучшие результаты. – Pondlife

ответ

0

Вы пробовали это без пробела между -P и значением? docs показать им склеены.

+0

Привет, да, но возвращается сообщение с одинаковым логином. Пароль содержит $ character и number, но они могут быть разрешены: http://msdn.microsoft.com/en-us/library/ms161962(v=sql.105).aspx – user2425937

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