如果把>=3改成>=4,则提示 命令已成功完成。 可能是你改为>=4的时候,if的条件为假,所以提示成功。另外可以看下>=4的时候,数据库中有没有插入数据。
觉得主要的原因在于语句的书写问题。如果数据库已经打开的话,如果是2005的话,查看下‘mb'等的架构,如果是默认的话改为'dbo.mb’试一试

解决方案 »

  1.   

    EXEC master..xp_cmdshell 'bcp "select * from test.dbo.tb" queryout f:\mb.txt -c -t,  -U -Ppassword' 
      

  2.   

    把查询的结果插入一个表,然后从这个表导出.以下测试成功.EXEC master..xp_cmdshell 'bcp pubs..authors out c:\DT.txt -c -Sservername+实例名 -Usa -Ppassword'  例如servername = myserver , 实例名=sqlserver2000,用户=sa ,密码=''EXEC master..xp_cmdshell 'bcp pubs..authors out c:\DT.txt -c -Smyserver\sqlserver2000 -Usa -P'  
      

  3.   

    把查询的结果插入一个表,然后从这个表导出.以下测试成功.EXEC master..xp_cmdshell 'bcp pubs..authors out c:\DT.txt -c -Sservername+实例名 -Usa -Ppassword'  例如servername = myserver , 实例名=sqlserver2000,用户=sa ,密码=''EXEC master..xp_cmdshell 'bcp pubs..authors out c:\DT.txt -c -Smyserver\sqlserver2000 -Usa -P'  或者直接用查询
    EXEC master..xp_cmdshell 'bcp "Select * from pubs..authors" queryout c:\DT.txt -c -Smyserver\sqlserver2000 -Usa -P' 
      

  4.   


    SQLState = 08001, NativeError = 17
    Error = [Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server 不存在或访问被拒绝
    SQLState = 01000, NativeError = 53
    Warning = [Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionOpen (Connect()).
    NULL
      

  5.   

    各位大虾,我试了半天才觉得导出语句是错的,约束条件好象没有用,我用下面的语句:select distinct n.e,n.f,n.g from 
    sd..xishud xi,sd..mb n,sd..zt z where 
     (select m.h from (select a.* from mb a,zt b where a.e=b.e and a.f=b.f and a.g=b.g) m) in 
     (select m.h from 
      xishud xi,sd..mb n,(select a.* from mb a,zt b where a.e=b.e and a.f=b.f and a.g=b.g) m 
    where
     m.a*xd_a+m.b*xd_b+m.c*xd_c+m.d*xd_d=n.a*xd_a+n.b*xd_b+n.c*xd_c+n.d*xd_d group by m.h having count(*)>=100)无论我改成大于等于几,都会把mb表中的所有记录显示出来,这到底是怎么回事呀,错在哪呀,我晕。