我在本机测试bcp命令,如下 :
bcp BMSDB..table11 out table11.txt -c -t @@@@@@ -r \n -P结果竟然成功了:
已复制了 5 行。
数据包的大小(字节): 4096
时钟时间(毫秒): 共      1然后我乱输一个密码:bcp BMSDB..table11 out table11.txt -c -t @@@@@@ -r \n -P250还是成功了。。这个密码到底有没有用?? 还是bug???

解决方案 »

  1.   

    因为你已经登录成功了!,单独一个-p不起作用,你可以试一下加个-u
    如果你是要连接另一服务器,则需要 -s -u -p ,写全!
      

  2.   

    1. BCP的主要参数介绍BCP共有四个动作可以选择。
    (1) 导入。
    这个动作使用in命令完成,后面跟需要导入的文件名。
    (2) 导出。
    这个动作使用out命令完成,后面跟需要导出的文件名。
    (3) 使用SQL语句导出。
    这个动作使用queryout命令完成,它跟out类似,只是数据源不是表或视图名,而是SQL语句。
    (4) 导出格式文件。
    这个动作使用format命令完成,后而跟格式文件名。下面介绍一些常用的选项:-f format_file
    format_file表示格式文件名。这个选项依赖于上述的动作,如果使用的是in或out,format_file表示已经存在的格式文件,如果使用的是format则表示是要生成的格式文件。-x
    这个选项要和-f format_file配合使用,以便生成xml格式的格式文件。-F first_row
    指定从被导出表的哪一行导出,或从被导入文件的哪一行导入。-L last_row
    指定被导出表要导到哪一行结束,或从被导入文件导数据时,导到哪一行结束。-c
    使用char类型做为存储类型,没有前缀且以"\t"做为字段分割符,以"\n"做为行分割符。-w
    和-c类似,只是当使用Unicode字符集拷贝数据时使用,且以nchar做为存储类型。-t field_term
    指定字符分割符,默认是"\t"。-r row_term
    指定行分割符,默认是"\n"。-S server_name[ \instance_name]
    指定要连接的SQL Server服务器的实例,如果未指定此选项,BCP连接本机的SQL Server默认实例。如果要连接某台机器上的默认实例,只需要指定机器名即可。-U login_id
    指定连接SQL Sever的用户名。-P password
    指定连接SQL Server的用户名密码。-T
    指定BCP使用信任连接登录SQL Server。如果未指定-T,必须指定-U和-P。
      

  3.   

    估计还是格式输入的问题。在下面应该能找到答案(再仔细点):
    http://msdn.microsoft.com/zh-cn/library/ms162802.aspx
      

  4.   

    看看这篇文章里面的一些设定。
    不要想着Bug,几乎不可能。
    SQLServer BCP导入命令详解
      

  5.   

    你用了-t参数 作为信任连接了
    你用xp_cmdshell 执行bcp命令试试 没密码肯定不行的