我是 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
我是 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
运行时xp_cmdshell
,SQL server 将启动一个新进程。运行此进程的用户可能会有所不同,具体取决于配置为运行 SQL Server 的用户以及是否启用了 SQL 代理。
要查找命令以哪个用户身份运行(我假设服务器上至少有 Windows 7),请执行:
EXEC xp_cmdshell 'whoami & cd & path'
第一行将是正在运行的用户xp_cmdshell
,第二行显示进程的工作目录是什么,其余将列出路径中的文件夹。
要检查有效权限,请使用资源管理器导航到:
whoami
例如,在我的系统上,whoami 返回nt authority\network service
,这是NETWORK SERVICE
为了有效的安全对话。
路径输出将包括一个“SQL server\xxx\binn”文件夹,检查其中的第一个是否与您连接的服务器正在运行的 SQL 版本匹配 - 否则您可能必须明确指定路径。