Sql BCP实用程序未返回/挂起

Sql BCP实用程序未返回/挂起,sql,bcp,utility,Sql,Bcp,Utility,我正在创建一个非常简单的存储过程,以使用BCP将查询输出导出到文本文件,如下所示 当我从SQLManagementSudio执行SP时,结果窗格只显示“正在执行查询…”,它既不会返回错误,也不会返回 谢谢你的帮助我已经花了很多时间在这上面了 CREATE procedure spTestShell WITH EXECUTE AS 'CmdShell' AS BEGIN DECLARE @Command varchar(512) set @Command = 'bcp "SEL

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

当我从SQLManagementSudio执行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 

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

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

set @Command = 'bcp "SELECT * FROM DBName.dbo.[ImportFileTable]" queryout "C:\bcptest.txt" -T -c -S ' + @@SERVERNAME
如果这不起作用,可能会在服务器名称周围加上[]括号,因为名称本身可能会导致问题