команда bcp не работает

Я использую следующую команду bcp

BCP "select * from PACIFIC.dbo.CEOExtractCorpRulesView with(nolock) " 
   queryout "d:\temp\CEOExtractCorpRulesView.txt" 
   -S"tcp:BCBWEC-VIRTD2\SQL2005" -c -t"|!" -U"userid" -P"password" 

Я получаю ошибку каждый раз

Сообщение 102, уровень 15, состояние 1, строка 1 Неверный синтаксис рядом с запросом.

Пожалуйста, дайте мне знать, в чем может быть проблема. Это не мой сценарий.

Спасибо


person user387268    schedule 18.03.2011    source источник
comment
Если вы публикуете образцы кода, XML или данных, пожалуйста, выделите эти строки в текстовом редакторе и нажмите кнопку образцов кода ( { } ) на панели инструментов редактора, чтобы красиво отформатировать и выделить синтаксис!   -  person marc_s    schedule 19.03.2011
comment
Как вы запускаете этот скрипт? В командной строке?   -  person Martin Smith    schedule 19.03.2011


Ответы (5)


Я получаю ту же ошибку, если пытаюсь выполнить этот скрипт, вставив его в SSMS и нажав «Выполнить».

Насколько я знаю, вам нужно открыть командное окно и запустить это.

person Martin Smith    schedule 18.03.2011
comment
@user - Если вы просто откроете командную строку (Пуск -> Выполнить -> cmd) и вставите в нее это, надеюсь, сработает. Если нет, сообщите об ошибке. - person Martin Smith; 19.03.2011
comment
@user387268 user387268 - Какую ошибку он вам выдал? Есть довольно много возможностей (bcp не в вашем PATH, неправильное имя сервера, неправильные учетные данные для входа), и я не могу угадать! - person Martin Smith; 19.03.2011

Если у вас есть доступ к xp_cmdshell, вы можете вызвать bcp оттуда

exec xp_cmdshell 'BCP "select * from PACIFIC.dbo.CEOExtractCorpRulesView with(nolock) " 
   queryout "d:\temp\CEOExtractCorpRulesView.txt" 
   -S"tcp:BCBWEC-VIRTD2\SQL2005" -c -t"|!" -U"userid" -P"password" '

ПРИМЕЧАНИЕ. Я не проверял приведенное выше правильное экранирование символов... Это боль.

В противном случае вам придется запускать bcp из командной строки. Это инструмент командной строки. Интерпретатор T-SQL ничего об этом не знает.

person squillman    schedule 18.03.2011

Согласен с Мартином. BCP предназначен для приглашения C, а не для SQL Server Management Studio. Чтобы запустить его внутри SSMS, вам нужно использовать xp_cmdshell (и войти в систему как пользователь с правами доступа к xp_cmdshell).

person Joel Brown    schedule 18.03.2011

Это похоже на синтаксис командной строки для меня. Я не думаю, что это работает в SSMS.

person bobs    schedule 18.03.2011

Запуск BCP в командной строке с правами администратора с путем unc, кажется, работает

person RaM    schedule 27.03.2013