/*
导出所有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