参考:
http://www.csdn.net/develop/read_article.asp?id=18623

解决方案 »

  1.   

    想找小姐吗,来水园吧!
    这里有老龟奴zyq_123雍亲正当大版主,还有人称辣花摧魔前青楼名妓smoke当镇小版主,肯定能满足您的需要!!!快来吧~~~~~~
      

  2.   

    我将表导出生成EXCEL文件失败。3条结果信息:SQLState = S1000, NativeError = 0
    Error = [Microsoft][ODBC SQL Server Driver]无法打开 BCP 主数据文件
    NULL
    怎么回事?创建不了文件。
      

  3.   

    EXEC master..xp_cmdshell 
    'bcp guodong.dbo.log_temp out e:\temp.xls -c -q -S"server" -U"sa" -P""'
      

  4.   

    用SQL事件探查器跟踪一下所在导入导出的整个过程,然后分析他产生的SQL语句,写成Procedure就好了
      

  5.   

    /*--实现数据导入/导出的存储过程 可以实现导入/导出 指定表 到文本文件邹建 2003.07-----------------*//*--调用示例
    导出调用示例
    --导出指定表,这里指定导出表:地区资料
    exec file2table 'zj','','','c:\zj.txt','xzkh_sa..地区资料'导入调用示例
    --导入指定表,这里指定导出表:地区资料
    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
      

  6.   


    ###转换成EXCEL
    CREATE proc out2xls
    @服务器名 varchar(255),
    @库名 varchar(255),
    @表名 varchar(255),
    @用户名 varchar(100),
    @密码 varchar(100),
    @路径及文件名 varchar(255)
    as
    declare @temp1 nvarchar(4000),@temp2 varchar(8000)set @temp1='select @value1='''',@value2='''' select @value1=@value1+'',''''''+a.name+''''+char(39)+'' [''+a.name+'']'',@value2=@value2+'',cast(''+''[''+a.name+'']''+ '' as varchar(200))'' from '+@库名+'..syscolumns a,'+@库名+'..sysobjects d where a.id=d.id and d.name='''+@表名+''''+' order by a.colorder'
    exec sp_executesql @temp1,N'@value1 nvarchar(4000) output , @value2 varchar(8000) output',@temp1 output,@temp2 outputselect @temp1=right(@temp1,len(@temp1)-1),@temp2=right(@temp2,len(@temp2)-1)exec('select * into '+@库名+'.dbo.中间表 from (select '+ @temp1+' union all SELECT '+@temp2+' FROM '+@库名+'..'+@表名+') tem3')
    set @temp2='bcp '+@库名+'.dbo.中间表 out '+@路径及文件名+' -c -S'+@服务器名+' -U'+@用户名+' -P'+@密码EXEC master..xp_cmdshell @temp2
    exec('drop table '+@库名+'.dbo.中间表')
    GO
    exec out2xls '服务器名','数据库名','表明','用户名','密码','导出路径'
    go
    drop proc  out2xls