Sql BCP实用程序未返回/挂起
我正在创建一个非常简单的存储过程,以使用BCP将查询输出导出到文本文件,如下所示 当我从SQLManagementSudio执行SP时,结果窗格只显示“正在执行查询…”,它既不会返回错误,也不会返回 谢谢你的帮助我已经花了很多时间在这上面了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
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
如果这不起作用,可能会在服务器名称周围加上[]括号,因为名称本身可能会导致问题