• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
鱼要的是海洋,鸟要的是天空,我要的是自由!
平凡的人不平凡的人生
博客园    首页    新随笔    联系   管理    订阅  订阅

逐记录导出text/ntext字段值为文本文件

/*--原帖地址:
http://community.csdn.net/Expert/topic/3851/3851741.xml?temp=.4726831
--*/

--测试数据
create table tb(id varchar(50) primary key,detail text)
insert tb select 'aaa','11111'
union all select 'bbb','43424'
union all select 'ccc','324234'

/*--处理要求

 把上述表中的detail字段导出为文本文件,要求每条记录一个文件,文件名为id+.txt
 即上述表中的数据要求导出为 aaa.txt,bbb.txt,ccc.txt
--*/

go

--处理的存储过程
create proc p_export
@path nvarchar(1000)  --导出的文本文件保存的目录
as
declare @s nvarchar(4000)
if isnull(@path,'')='' set @path='c:\'
else if right(@path,1)<>'\' set @path=@path+'\'

--用游标构建每条记录的bcp导出语句,BCP的语法参考sql联机帮助
declare tb cursor local
for
select 'BCP "select detail from '
 +quotename(db_name())
 +'..tb where id='
 +quotename(id,N'''')
 +'" queryout "'+@path
 +id+'.txt" /T /w'
from tb
open tb
fetch tb into @s
while @@fetch_status=0
begin
 --调用xp_cmdshell存储过程执行bcp进行导出处理
 exec master..xp_cmdshell @s,no_output
 fetch tb into @s
end
close tb
deallocate tb
go

--调用
exec p_export 'c:\'
go

--删除测试
drop table tb
drop proc p_export

posted @ 2007-06-29 16:46  伊凡  阅读(386)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3