2014-12-02 2 views
1

Я создаю очень простую хранимую процедуру для экспорта вывода запроса в текстовый файл с использованием BCP, как показано ниже.Утилита BCP Не возвращающая/зависает

Когда я выполняю SP из SQL Management Sudio, панель результатов просто сидит там с «Выполнение запроса ...». Она не возвращает ошибку и не возвращается.

Любая помощь приветствуется. Я потратил на это много времени.

CREATE procedure spTestShell 
WITH EXECUTE AS 'CmdShell' 
AS 
BEGIN 

    DECLARE @Command varchar(512) 

    set @Command = 'bcp "SELECT * FROM DBName.dbo.[ImportFileTable]" queryout "C:\bcptest.txt" -T -c -S' + @@SERVERNAME 

    print @Command 
    EXEC xp_cmdshell @Command 

END 

exec spTestShell 

ответ

0

Тот факт, что он «зависает», настоятельно предлагает мне, что процесс пытается, но не может подключиться к вашему серверу.

Я думаю, что ваша проблема в том, что между параметроми рядом с именем сервера нет пробела. Таким образом, он не сможет подключиться к вашему серверу, поскольку имя недействительно. Попробуйте добавить пробел, чтобы увидеть, если это фиксирует его, то есть

set @Command = 'bcp "SELECT * FROM DBName.dbo.[ImportFileTable]" queryout "C:\bcptest.txt" -T -c -S ' + @@SERVERNAME 

Если это не работает, возможно, поставил [] скобки, имя сервера, так как само название может быть причиной проблем.

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