我使用的是sql server 2005 express版。 当我使用dos提示通过bcp实用程序导出数据时,没有错误, 但是当我为导出过程创建存储过程并使用management studio express导出数据时,它会出现以下错误:
SQLState = S1000,NativeError = 0 错误= [Microsoft] [SQL Server Native Client 10.0]无法打开BCP主机数据文件
请帮忙。
答案 0 :(得分:3)
我有同样的问题,但答案是我不那么聪明。
由于命令是在服务器而不是本地计算机上运行的,因此它尝试写入服务器上不存在的文件夹。它正在针对C的根目录成功执行:但不是针对我的共享文件夹C:\ share。对我来说问题是我在C盘的根目录中寻找文件,而不是服务器。
当我将路径更改为\ mymachinename \ share时,一切正常。
答案 1 :(得分:2)
使用DOS命令行运行bcp
实用程序时,您使用的是登录人员凭据(通常是您自己的凭据),但作为存储过程运行时,您使用的是SQL Server进程的凭据,通常被配置为具有比普通用户少得多的权限,以便提供抵御各种攻击的安全性。
在服务列表中签入用于SQL Server数据库引擎的用户,并检查该用户是否对所涉及的目录和文件具有足够的读/写权限。