我用sql server2008使用BCP导出时出现错误,提示“无法打开 BCP 主数据文件”,求解!

EXEC master..xp_cmdshell 'BCP "select * FROM [我顶].[dbo].[a]" queryout "C:\Users\Administrator\Desktop\b.txt" -c -t "|" -T'执行后出现错误提示:
SQLState = S1000, NativeError = 0
Error = [Microsoft][SQL Server Native Client 10.0]无法打开 BCP 主数据文件
NULL
如图所示

但是我在cmd命令行里面输入BCP "select * FROM [我顶].[dbo].[a]" queryout "C:\Users\Administrator\Desktop\b.txt" -c -t "|" -T这样就能够成功导出。。。想求助各位高手为什么在sql server2008的ssms中就无法导出呢?我的存储过程应该打开了的
sp_configure 'show advanced options',1
reconfigure
go
sp_configure 'xp_cmdshell',1
reconfigure
go
是不是sql server2008安装完需要打什么补丁之类的才能够成功使用导出功能???

一般是因为SQL Server 2008的用户对你所要操作的目录没有权限造成的错误,固无法打开你所需要导出的文件。
你用CMD导出的时候不报错,是因为你调用CMD的用户是管理员,具备足够的权限。
你可以对你要导出的目录文件设置权限,就应该可以顺利导出了追问

不行,我换了其他路径导出还是不行,我想弄成可以导出到任何路径,这个要怎么做?应该如何设置权限呢?

追答

SQL SERVER DTS用户要对导出目录拥有全部操作权限

追问

谢谢你了,不过按你的截图中的那个所选用户SQL SERVER2005DTS的这个用户加上所有权限后还是不行,结果我就直接给用户everyone用户授与完全控制的权限,最终可以成功导出了。

追答

我用的是SQL2005,你用的是SQL2008,用户可能会有些区别。不建议你用everyone用户,这样很危险。小心哟

温馨提示:答案为网友推荐,仅供参考
相似回答