各位大侠:你们好 
我在sqlserver 的存储过程需要将表的某些数据导出为数据文件,使用了如下语句: 
exec xp_cmdshell 'bcp my_db.dbo.t out c:\test.dat -c -U sa -P ' 得到的结果如下: SQLState = 08001, NativeError = 2 
Error = [Microsoft][SQL Native Client]命名管道提供程序: 无法打开与 SQL Server 的连接 [2]. 
SQLState = HYT00, NativeError = 0 
Error = [Microsoft][SQL Native Client]登录超时已过期 
SQLState = 08001, NativeError = 2 
Error = [Microsoft][SQL Native Client]建立到服务器的连接时发生错误。连接到 SQL Server 2005 时,默认设置 SQL Server 不允许远程连接这个事实可能会导致失败。 
NULL 前些天这个问题已经被提出来了,那位仁兄结贴时只是说环境问题,没说具体怎么设置环境,请大侠具体说明一下需要设置哪些环境?注:
我已经在配置工具中选择了使用 tcp/ip and named pipes

解决方案 »

  1.   

    EXEC master..xp_cmdshell 'bcp dbname..tablename out FilePath -c -S servername -U sa -P  '
      

  2.   


    用这个语句报错:Error = [Microsoft][SQL Native Client]无法打开 BCP 主数据文件。请问是怎么回事??
      

  3.   

    是2000么?
    可以的NULL
    开始复制...
    NULL
    已复制了 0 行。
    数据包的大小(字节): 4096
    时钟时间(毫秒): 共      1
    NULL
      

  4.   


    不是2000, 是sql server Management Studio Express...
    这个版本需要什么特别的设置吗??
    我在宿舍用的是2000,可以正确的执行,但是在实验室这个版本就不行了。报错:Error = [Microsoft][SQL Native Client]无法打开 BCP 主数据文件。请问是怎么回事??
      

  5.   

    你C盘是不是ntfs格式的?把c盘操作权限增加Everyone用户并完全控制。或者增加SqlServer的运行用户
    用这个方法试下看
      

  6.   

    把导出路径设置到其他盘符,然后新建个文件夹,设置该文件夹的访问权限为EveryOne用户完全控制,