你想怎么格式化法? 将记事本的自动换行取消不行吗?

解决方案 »

  1.   

    if exists(select 1 from sysobjects where name='File2Table' and objectproperty(id,'IsProcedure')=1)
    drop procedure File2Table
    go/*--实现导出指定表为等宽列的存储过程--邹建 2004.03--*//*--调用示例调用示例--导出指定表,这里指定导出表:sysobjects
    exec file2table @tbname='sysobjects',@width=50,@filename='c:\a.txt'--*/
    create procedure File2Table
    @dbname sysname='', --数据库,默认为当前数据库
    @tbname sysname, --要导出的表名
    @width int=100, --列宽
    @filename nvarchar(260), --目录名+文件名
    @servername sysname='', --服务器名
    @username sysname='', --用户名,如果用NT验证方式,则为空''
    @password nvarchar(200)='', --密码
    @fdsplit varchar(10)='\t', --字段分隔符,默认为制表符
    @rowsplit varchar(10)='\n' --记录分隔符,默认为回车符
    as
    declare @fd varchar(8000),@s nvarchar(4000)if isnull(@dbname,'')='' set @dbname=db_name()
    select @s='select @fd=@fd+'',cast([''+name+''] as char('
    +cast(@width as varchar)+'))'' from ['
    +@dbname+']..syscolumns where id=object_id('''
    +@tbname+''')'
    ,@fd=''
    exec sp_executesql @s,N'@fd varchar(8000) out',@fd outselect @fd='bcp "select '+substring(@fd,2,8000)+' from ['
    +@dbname+']..['+@tbname+']" queryout "'
    +@filename+'" /c' +' /S"'+@servername
    +case when isnull(@username,'')='' then '' 
    else '" /U"'+@username end
    +'" /P"'+isnull(@password,'')+'"'
    +' /t"'+@fdsplit+'"'
    +' /r"'+@rowsplit+'"'
    print @fd
    exec master..xp_cmdshell @fd
    go