日期:2014-05-18  浏览次数:20678 次

SQLServer版块藏龙卧虎,bcp怎么导出一个表数据为带列名的csv格式文件
bcp怎么导出一个表数据为csv格式,带列名的,这样就可以导回去了

如果单独导出一个TXT,往回导就有问题。

这里有个一个例子

--用sql语句可以参考这个.      
       
       
    if       exists(select       1       from       sysobjects       where       name= 'File2Table '       and       objectproperty(id, 'IsProcedure ')=1)      
    drop       procedure       File2Table      
    go      
       
    /*--实现数据导入/导出的存储过程      
       
    可以实现导入/导出       指定表       到文本文件      
    支持自定义行/列分隔符      
       
    --邹建       2003.07(引用请保留此信息)--*/      
       
    /*--调用示例      
       
    导出调用示例      
    --导出指定表,这里指定导出表:地区资料      
    exec       file2table       'zj ', ' ', ' ', 'c:\zj.txt ', 'xzkh_new..地区资料 ',@rowsplit= ', '      
       
    导入调用示例      
    --导入指定表,这里指定导入表:地区资料      
    exec       file2table       'zj ', ' ', ' ', 'c:\zj.txt ', 'xzkh_sa..地区资料 ',0      
       
    --*/      
       
    create       procedure       File2Table      
    @servername       varchar(200)   --服务器名      
    ,@username       varchar(200)   --用户名,如果用NT验证方式,则为空 ' '      
    ,@password       varchar(200)   --密码      
    ,@filename       varchar(1000)   --目录名+文件名      
    ,@tbname       varchar(500)= ' '   --数据库..表名      
    ,@isout       bit=1   --1为导出(默认),0为导入      
    ,@fdsplit       varchar(10)= '\t '   --字段分隔符,默认为制表符      
    ,@rowsplit       varchar(10)= '\n '   --记录分隔符,默认为回车符      
    as      
    declare       @sql       varchar(8000)      
       
    set       @sql= 'bcp       " '+@tbname      
    +case       when       @isout=1       then       ' "       out '       else       ' "       in '       end      
    + '