你的用户名格式错了LMBE-DATABASE\lmbesnp 表示你是用LMBE-DATABASE这个window域的lmbesnp帐户登陆(window 身份验证),但是你用-U 表示SQL Server身份验证.坦然就登录失败。

解决方案 »

  1.   

    F:\tools>bcp "lmbesnp..RepMaskClassID" IN "F:\snpdbdata\data\RepMaskClassID.bcp"  -c -C936 -S LMBE-DATABASE
    -U"lmbesnp" -P"lmbesnp"
      

  2.   

    F:\tools>bcp "lmbesnp..RepMaskClassID" IN "F:\snpdbdata\data\RepMaskClassID.bcp"  -c -C936 -S LMBE-DATABASE 
    -U"LMBE-DATABASE\lmbesnp" -P"lmbesnp"
    'LMBE-DATABASE\lmbesnp' 登录失败,試試
    F:\tools>bcp "lmbesnp..RepMaskClassID" IN "F:\snpdbdata\data\RepMaskClassID.bcp"  -c -C936 -S LMBE-DATABASE
    -U"lmbesnp" -P"lmbesnp"
      

  3.   

    --这样写就行了:F:\tools>bcp "lmbesnp..RepMaskClassID" IN "F:\snpdbdata\data\RepMaskClassID.bcp"  -c -C936 -S"LMBE-DATABASE" -P""
      

  4.   

    --参考我的存储过程/*--实现数据导入/导出的存储过程 可以实现导入/导出 指定表 到文本文件邹建 2003.07-----------------*//*--调用示例
    导出调用示例
    --导出指定表,这里指定导出表:地区资料
    exec file2table 'zj','','','c:\zj.txt','xzkh_new..地区资料'导入调用示例
    --导入指定表,这里指定导入表:地区资料
    exec file2table 'zj','','','c:\zj.txt','xzkh_sa..地区资料',0
    --*/if exists(select 1 from sysobjects where name='File2Table' and objectproperty(id,'IsProcedure')=1)
    drop procedure File2Table
    gocreate procedure File2Table
    @servername varchar(200) --服务器名
    ,@username varchar(200) --用户名,如果用NT验证方式,则为空''
    ,@password varchar(200) --密码
    ,@filename varchar(1000) --目录名+文件名
    ,@tbname varchar(500)='' --数据库..表名
    ,@isout bit=1 --1为导出(默认),0为导入
    as
    declare @sql varchar(8000)set @sql='bcp "'+@tbname
    +case when @isout=1 then '" out' else '" in' end
    +' "'+@filename+'" /c' +' /S"'+@servername
    +case when isnull(@username,'')='' then '' 
    else '" /U"'+@username end
    +'" /P"'+isnull(@password,'')+'"'
    exec master..xp_cmdshell @sql
    go
      

  5.   

    用zjcxc(邹建) 兄的方法可行,已经登陆上。 用F:\tools>bcp "lmbesnp..RepMaskClassID" IN "F:\snpdbdata\data\RepMaskClassID.bcp"  -c -C936 -S LMBE-DATABASE
    -U"lmbesnp" -P"lmbesnp"这种方法不行,提示错误一样。不过这里遇到一个新问题,用邹建兄的 F:\tools>bcp "lmbesnp..RepMaskClassID" IN "F:\snpdbdata\data\RepMaskClassID.bcp"  -c -C936 -S"LMBE-DATABASE" -P""
    时系统提示:开始复制...
    SQLState = 22003, NativeError = 0
    Error = [Microsoft][ODBC SQL Server Driver]数值超出范围已复制了 0 行。
    数据包的大小(字节): 4096
    时钟时间(毫秒): 共      1这个问题怎么解决呢? 我在查询器中用 bulk insert命令是可以导入的, 那时用的是
    bulk insert RepMaskClassID from 'F:\snpdbdata\data\RepMaskClassID.bcp'  
    with ( fieldterminator = '\t' 
           ,rowterminator='0X0A' 
           ,BATCHSIZE=50000
           ,CHECK_CONSTRAINTS 
           ,MAXERRORS=1 )
    但是由于我要同时倒入大批文本文件到数据库的不同表中,所以我想用dos命令行批处理方式解决,此时我只能求助于bcp函数。
      

  6.   

    我就是想问bcp命令的那个 -f开关怎么用,如何设置行分隔符,因为我的文本文件都是unix格式也就是用0A而不是0D0A分隔行
      

  7.   

    bcp中用:-t field_term指定字段终止符。默认的字段终止符是 \t(制表符)。使用此参数替代默认字段终止符。-r row_term指定行终止符。默认的行终止符是 \n(换行符)。使用此参数替代默认行终止符。
      

  8.   

    楼主或者发一个文件过来,我帮你没一下.
    [email protected]
      

  9.   

    如果是本地:
    bcp "lmbesnp..RepMaskClassID" IN "F:\snpdbdata\data\RepMaskClassID.bcp"  -c -C936 -S .-U"lmbesnp" -P"lmbesnp"我认为是的的机器名有问题“-”不合法!