逐记录导出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)  --导出的文本文件保存的目录asdeclare @s nvarchar(4000)if isnull(@path,'')='' set @path='c:\'else if right(@path,1)<>'\' set @path=@path+'\'

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

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

--删除测试drop table tbdrop proc p_export

时间: 2024-10-29 21:57:18

逐记录导出text/ntext字段值为文本文件的相关文章

Ntext字段拆分处理

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_split]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)drop procedure [dbo].[p_split]GO /*--Ntext字段拆分处理  按指定的分隔符,将 ntext 字段拆分成多条记录 注意:处理过程固定以名为id的int型字段为主键 如果不满足这个条件,则要对应的修改存储过程 --邹

模拟字符串处理函数 stuff 处理 Ntext 字段

函数|字符串 if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_stuff]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)drop procedure [dbo].[p_stuff]GO /*--Ntext字段处理  模拟字符串处理函数 stuff 完成表中 ntext 字段的 stuff 处理 注意,表中需要有列名为:id 的主键(或标识字段),数据类型为

模拟字符串处理函数 stuff 的存储过程,对 ntext 字段进行stuff .

存储过程|函数|字符串 if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_stuff]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)drop procedure [dbo].[p_stuff]GO /*--Ntext字段处理 模拟字符串处理函数 stuff完成表中 ntext 字段的 stuff 处理注意,表中需要有列名为:id 的主键(或标识字段),数据类

SQL Server中text或ntext 字段内容替换方法

  update 表名 set text类型字段名=replace(convert(varchar(8000),text类型字段名),'要替换的字符','替换成的值') 1.update ntext: (1)varchar和nvarchar类型是支持replace,所以如果你的text/ntext不超过8000/4000可以先转换成前面两种类型再使用replace. update 表名 set text类型字段名=replace(convert(varchar(8000),text类型字段名),

mysql不重复插入所有字段值都一样的记录

问题描述 mysql不重复插入所有字段值都一样的记录 怎么实现mysql避免插入重复所有字段值都一样的记录,不是根据某个主键的值来判断是否插入,只有在所有字段值都一样(已经存在)的时候才无法添加该记录.. 解决方案 写个beforeinsert的触发器? 或者在insert之前select一下? 解决方案二: 这个,怎么说呢,在我的印象中,只要主键一样,这行记录就无法插入了吧.既然部分相同都无法插入,那么所有字段相同的情况是肯定如法添加数据的. 还是你的意思是说,这些数据比较特殊,只要有一点字段

db2-DB2中如何把一个表中一条记录的多个字段的值赋值给另一个表中的相应字段

问题描述 DB2中如何把一个表中一条记录的多个字段的值赋值给另一个表中的相应字段 例如表a 工号 姓名 年龄 性别 001 张三 30 男 002 李四 40 男 表b 工号 姓名 性别 岗位 住址 如何把表a中的第一条记录的字段(工号,姓名,性别)的值赋值给表b 解决方案 所有的数据库都可以象下面这样指定字段的啊 INSERT INTO 表b(工号姓名性别) SELECT 工号姓名性别 FROM 表a

oracle 数据库-如何删除oralce表中部分字段值相同的所有记录项?

问题描述 如何删除oralce表中部分字段值相同的所有记录项? 表A中包含几个字段,Key,NO,Year等 现在需要删除,满足Key和NO字段完全相同的记录.需求是所有记录满足条件的记录都删除,不需要保留一条 解决方案 delete from A where Key = NO 解决方案二: oralce删除某字段值相同的记录

sql取重复记录 字段值最大的一条记录

sql取abc字段重复记录的a字段值最大的一条记录 select max(a),b,c from 表名 group by b,c 文件很简单吧. 关于max max() 函数 max 函数返回一列中的最大值.null 值不包括在计算中. sql max() 语法 select max(column_name) from table_name注释:min 和 max 也可用于文本列,以获得按字母顺序排列的最高或最低值. 合计函数 (比如 sum) 常常需要添加 group by 语句. group

sql TEXT、NTEXT字段拆分的问题

  sql TEXT.NTEXT字段拆分的问题 SET NOCOUNT ONCREATE TABLE #T (C NTEXT)GOINSERT INTO #T VALUES('')GOCREATE TABLE #T2 (C CHAR(8))GO DECLARE @S1 VARCHAR(8000),@S2 VARCHAR(8000),@I INTSET @S1=''SET @S2=''SET @I=1WHILE @I<=1000BEGIN   SET @S1=@S1+'A'+RIGHT('0000