求sql语句:将字段导出至文本 ,应该是有的吧

解决方案 »

  1.   

    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
    +' "'+@filename+'" /c' +' /S"'+@servername
    +case when isnull(@username,'')='' then '' 
    else '" /U"'+@username end
    +'" /P"'+isnull(@password,'')+'"'
    +' /t"'+@fdsplit+'"'
    +' /r"'+@rowsplit+'"'exec master..xp_cmdshell @sql
    go