BCP实用程序不返回/挂起

时间:2014-12-02 02:36:36

标签: sql bcp utility

我正在创建一个非常简单的存储过程,使用BCP将查询输出导出到文本文件,如下所示。

当我从SQL Management Sudio执行SP时,结果窗格只是位于“执行查询...”它不会返回错误也不会返回。

感谢任何帮助..我已经花了很多时间在这上面。

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 

1 个答案:

答案 0 :(得分:0)

它“挂起”的事实强烈暗示我正在尝试进程,但无法连接到您的服务器。

我认为您的问题是-S参数和服务器名称之间没有空格。因此,由于名称无效,它将无法连接到您的服务器。尝试添加空格以查看是否可以修复它,即

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

如果这不起作用,可以将[]括号括在服务器名称周围,因为名称本身可能会导致问题。