导出ntext数据到文本文件,一条记录一个文件

来源:互联网 发布:淘宝代购怎么做的 编辑:程序博客网 时间:2022/01/24 06:08

/*

导出所有ntext数据,每条记录保存成一个文本文件。

比如
id(int)  mydata(ntext)
1
2
3
4
最后把所有mydata中的数据,导出成1.txt,2.txt,……

*/ 

if object_id('table1') is not null drop table table1
create table table1(id int,mydata ntext)
insert table1
select 1, 'abc' union all
select 2, 'def' union all
select 3, 'ghi'

declare @Str varchar(8000)
declare @id varchar(100)
declare @count varchar(100)
select @Str=''
select @count=count(*) from table1
set @id=1
while @id<=@count
  begin
    select @Str=@Str+'exec master..xp_cmdshell ''bcp "select * from abc..table1 where id='+@id+'" queryout c:/'+@id+'.txt -c -q -t, -SDICKY -Usa -Pggs'''+CHAR(10)
    select @id=@id+1
  end
exec(@Str)

drop table table1

--到c:/会看到文件1.txt,2.txt,3.txt

----------------------------------------------------------------------------------------------

--写成存储过程

/*

帮忙写成支持多个参数的存储过程
@tablename varchar(100),表名
@colname varchar(100),列名
@path varchar(100)保存路径
@。。。            其他信息,比如用户名,密码等

*/

create procedure ntextToTxt
@tablename varchar(100),
@colname varchar(100),
@path varchar(100)
as
declare @Str varchar(8000)
declare @id varchar(100)
declare @count varchar(100)
select @Str=''
select @count=count(*) from @tablename
set @id=1
while @id<=@count
  begin
    select @Str=@Str+'exec master..xp_cmdshell ''bcp "select '+@colname+' from bbs..'+@tablename+' where id='+@id+'" queryout '+@path+@id+'.txt -c -q -t, -Smyserver -Usa -Psa'''+CHAR(10)
    select @id=@id+1
  end
exec(@Str)
go

原创粉丝点击