Sql server SQL Server 2008 R2:使用bcp命令导出数据并将bcp输出存储到变量中

Sql server SQL Server 2008 R2:使用bcp命令导出数据并将bcp输出存储到变量中,sql-server,sql-server-2008-r2,bcp,Sql Server,Sql Server 2008 R2,Bcp,我想使用bcp命令导出数据,bcp命令的输出应该存储在变量中 我的尝试: 但是在输出中获取错误: output ------------------------------------------------------------------------------ bcp: Unable to open output file E:\BCP\LogReport.txt: No such file or directory NULL 问题: 1.如何将上述输出结果存储到变量中? 2.也已授予

我想使用bcp命令导出数据,bcp命令的输出应该存储在变量中

我的尝试:

但是在输出中获取错误:

output
------------------------------------------------------------------------------
bcp: Unable to open output file E:\BCP\LogReport.txt: No such file or directory
NULL
问题: 1.如何将上述输出结果存储到变量中? 2.也已授予该文件和文件夹的权限,但仍收到此错误

---------------------------------------- 1 -------------------------------------------

DECLARE @Result TABLE
(error_msg VARCHAR(800))

DECLARE 
    @SQL varchar(8000),
    @Result_var VARCHAR(MAX)=''

SET @SQL = N'bcp "SELECT * FROM <MY_DATABASE>.<MY_SCHEMA>.<MY_TABLE>" QueryOut  "E:\BCP\Result.pec"   -T -t@_@ -c -o "E:\BCP\LogReport.txt"'''

-- Insert the output from xp_cmdshell into the table @Result
INSERT INTO @Result (error_msg)
EXEC xp_cmdshell @SQL

-- Merge the rows
SELECT @Result_var = @Result_var + ' ' + ISNULL(error_msg,'') FROM @Result

-- Output in variable
PRINT @Result_var
--------------------------------------------------------------------------------------

二,。对我来说,您的命令有效,检查数据库用户对文件夹和子文件夹的访问权限,检查sql server上的权限。

驱动器和目录位于哪里?客户端的服务器端?请注意,您传递的任何目录都应该位于服务器端,并且SQL server帐户需要访问该目录。
---------------------------------------- 1 -------------------------------------------

DECLARE @Result TABLE
(error_msg VARCHAR(800))

DECLARE 
    @SQL varchar(8000),
    @Result_var VARCHAR(MAX)=''

SET @SQL = N'bcp "SELECT * FROM <MY_DATABASE>.<MY_SCHEMA>.<MY_TABLE>" QueryOut  "E:\BCP\Result.pec"   -T -t@_@ -c -o "E:\BCP\LogReport.txt"'''

-- Insert the output from xp_cmdshell into the table @Result
INSERT INTO @Result (error_msg)
EXEC xp_cmdshell @SQL

-- Merge the rows
SELECT @Result_var = @Result_var + ' ' + ISNULL(error_msg,'') FROM @Result

-- Output in variable
PRINT @Result_var
--------------------------------------------------------------------------------------