XP_CMDSHELL bcp错误

时间:2011-05-12 00:01:56

标签: sql sql-server-2005

我正在执行XP_CMDSHELL,如下所示:

Exec XP_CMDSHELL 'bcp "Select OrderID, OrderDate, OrderDesc from DB.dbo.Order" queryout C:\Orderfile.txt -k -t \t -c -Slocalhost -T'

我收到以下错误:

“无法打开BCP主机数据文件。”

我查看了c:\驱动器,并且存在一个Orderfile.txt文件。我没有打开文件或任何其他程序不是文件。但我仍然得到这个错误。

任何人都知道我为什么会收到此错误?提前谢谢。

2 个答案:

答案 0 :(得分:2)

两个问题之一:

  • XP_CMDSHELL使用SQL Server服务帐户凭据进行文件系统(和其他)访问。服务帐户不具有C:的根目录权限,可以看到它无关紧要

  • SQL Server位于某个服务器上(即,不是本地安装),并且您正在尝试访问本地C:驱动器。 SQL Server当然看不到这个......

答案 1 :(得分:0)

应该有驱动器的完全权限。 文件是自动创建的。 exec master..xp_cmdshell' BCP"选择*来自[测试]。[dbo]。[客户]" QUERYOUT C:\ Backup \ customer123.txt -S HP-PC -T -c'

enter image description here