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