使用XP_CMDSHELL将结果导出为CSV

时间:2015-05-12 12:12:30

标签: sql-server export-to-csv xp-cmdshell

我是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

1 个答案:

答案 0 :(得分:0)

运行xp_cmdshell时,SQL Server将启动一个新进程。此进程运行的用户可能会有所不同,具体取决于配置为运行SQL Server的用户以及是否已启用SQL代理。

要查找命令运行的用户(我假设服务器上至少有Windows 7),请执行:

EXEC xp_cmdshell 'whoami & cd & path'

第一行将是运行xp_cmdshell的用户,第二行显示进程的内容'工作目录是,其余的将列出路径中的文件夹。

要检查有效权限,请使用资源管理器导航至:

  • " d:\"性的判定
  • 安全
  • 高级
  • 有效权限
  • '选择'并输入从whoami
  • 返回的名称

E.g。在我的系统上,whoami返回nt authority\network service NETWORK SERVICE以获得有效的安全对话框。

路径输出将包括' SQL server \ xxx \ binn'文件夹,检查其中第一个是否与您连接的服务器正在运行的SQL版本匹配 - 否则您可能必须明确指定路径。