我是SQL Server的初学者。当我尝试运行代码时:
'EXEC xp_cmdshell 'bcp "SELECT * FROM sysfiles" queryout "D:\sysobjects.txt" -T -c -t'
我收到此错误:
[Microsoft][SQL Server Native Client 11.0]Unable to open BCP host data-file NULL
答案 0 :(得分:0)
运行xp_cmdshell
时,SQL Server将启动一个新进程。此进程运行的用户可能会有所不同,具体取决于配置为运行SQL Server的用户以及是否已启用SQL代理。
要查找命令运行的用户(我假设服务器上至少有Windows 7),请执行:
EXEC xp_cmdshell 'whoami & cd & path'
第一行将是运行xp_cmdshell
的用户,第二行显示进程的内容'工作目录是,其余的将列出路径中的文件夹。
要检查有效权限,请使用资源管理器导航至:
whoami
E.g。在我的系统上,whoami返回nt authority\network service
NETWORK SERVICE
以获得有效的安全对话框。
路径输出将包括' SQL server \ xxx \ binn'文件夹,检查其中第一个是否与您连接的服务器正在运行的SQL版本匹配 - 否则您可能必须明确指定路径。