-T 表示使用 windows 身份验证
-U -P 表示使用 sql server 身份验证你只能使用其中的一个, 不能同时指定这两个

解决方案 »

  1.   

    -- 故删除其中一个, 例如这样应该就好了
    exec master..xp_cmdshell 'bcp WapStatReport.dbo.CompanyInfo out c:\reporttmp\CompanyInfo.txt -T -c'
      

  2.   


    不是这个问题,使用-U -P 的时候,仍然出现那个错误
    问题可能和我装了N种数据库而且sqlserver没有装在C盘有关
    比如,我进入CMD后直接执行 bcp WapStatReport.dbo.CompanyInfo out c:\reporttmp\CompanyInfo.txt -c -Usa -P ,就会出现上面的错误
    然后我在CMD里进入这个目录 E:\Program Files\Microsoft SQL Server\90\Tools\Binn 
    再执行BCP命令,就成功了
      

  3.   

    设置系统的环境变量
    我的电脑->右击->属性->高级->环境变量->PATH->
      

  4.   

    在PATH上加个;E:\Program Files\Microsoft SQL Server\90\Tools\Binn 
    再CMD->BCP试试.
      

  5.   

    -U -P 表示使用 sql server 身份验证 
      

  6.   


    PATH 已经存在这一项,然后我把它又放到了最前面,但是还是出现那个错误,装的数据库比较多,PATH里面有BCP命令的路径不只一个……,在SQL脚本里面可以控制吗?实在不行就只能写BAT脚本了
      

  7.   

    另外请问,想要把默认的分割符/t 换成| 怎么弄? 在-c 后面加 -t '|' 语法错误
      

  8.   


    我的电脑也装了2000和2005的..我在PATH中把指向2000的BIN的路径删了..只留了2005的..
      

  9.   


    多谢了,还是写BAT脚本吧,不是2000和2005,是sybase和2005,可能还要用sybase