CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  疑难问题

如何用存储过程连接text类型的字段

楼主chechy(www.qdocuments.net)2006-03-15 15:34:17 在 MS-SQL Server / 疑难问题 提问

现有一表,表中有一text字段,我如果要写一个存储过程,将表中若干条记录的这个text字段连接起来,存入另一表中的text字段,该如何处理?  
  注意,表中的记录通常都是超过varchar(8000)的,所以决不能用varchar(8000)替代,这样就有数据损失。同时,SQL   Server不允许定义text类型的变量,这样,就让这个看似简单的问题复杂了。 问题点数:100、回复次数:4Top

1 楼huailairen(流浪猫--很想养只猫,带着它到处流浪。)回复于 2006-03-15 18:20:54 得分 0

第一次写入,  
  后几次作为更新操作就可以解决了。  
  用变量记住文本的偏移量,  
  使用UPDATETEXT   连接。  
   
  Top

2 楼huailairen(流浪猫--很想养只猫,带着它到处流浪。)回复于 2006-03-15 18:29:43 得分 0

第一次写入,  
  后几次作为更新操作就可以解决了。  
  用变量记住文本的偏移量,  
  使用UPDATETEXT   连接。  
   
  Top

3 楼zjcxc(邹建)回复于 2006-03-15 20:06:04 得分 100

--   示例,   把   pubs   数据库中,   pub_info   全部合并在一齐,   写入一个自己创建的表中  
  USE   pubs  
  GO  
   
  --   创建保存合并结果的表  
  CREATE   TABLE   dbo.tb(col   text)  
  GO  
   
  --   合并处理  
  CREATE   TABLE   #(col   text)  
  INSERT   #   SELECT   ''  
   
  DECLARE   @p1   varbinary(16),   @p2   varbinary(16)  
  SELECT   @p1   =   textptr(col)   FROM   #  
   
  DECLARE   tb   CURSOR   LOCAL    
  FOR  
  SELECT   textptr(pr_info)  
  FROM   pub_info  
  OPEN   tb  
  FETCH   tb   INTO   @p2  
  WHILE   @@fetch_status=0  
  BEGIN  
  UPDATETEXT   #.col   @p1   NULL   0   pub_info.pr_info   @p2  
  FETCH   tb   INTO   @p2  
  END  
  CLOSE   tb  
  DEALLOCATE   tb  
  INSERT   tb   SELECT   *   FROM   #  
  DROP   TABLE   #  
  GO  
   
  --   显示结果  
  SELECT   DATALENGTH(col),(SELECT   SUM(DATALENGTH(pr_info))   FROM   pub_info),  
  *    
  FROM   tb  
  GO  
   
  DROP   TABLE   tb  
  Top

4 楼zjcxc(邹建)回复于 2006-03-15 20:08:05 得分 0

结果:  
  86664 86664         This   is   sample   text   data   for....  
   
  从字节数来看,   源和目标是一样的,   所以结果是对的.   楼主可以自行验证.  
   
   
  如果是更新到现有的记录,   则到最后的:  
  INSERT   tb   SELECT   *   FROM   #  
   
  修改为:  
  UPDATE   A   SET   col=B.col  
  FROM   tb   A,   #   B  
  WHERE   A.条件  
  Top

相关问题

  • 请问一个SYBASE数据库存储过程中有TEXT类型字段作为参数的问题?
  • ASP与存储过程相对应的字段类型分别是什么?
  • 以下sql server中的字段类型在asp调用存储过程时对应的是什么类型呢?
  • 我在SQL存储过程中要返回一个text类型的字段的值,可提示text不能用OUTPUT,如何写存程才可能取得text类型的值?
  • 在VB中调用存储过程,什么枚举类型属于 text 类型?
  • 在存储过程中,如何把text类型转为字符类型。
  • SQL存储过程中的Text类型,在ADO中对应什么类型?
  • 关于text字段,有难度,搜不到相关帖子:在存储过程里如何把 一个表的 text字段的内容 写到 另一个表中的text字段,通过存储过程!
  • 大家来看看,如何在存储过程进行两个表TEXT字段的数据拷贝?
  • 还是关于存储过程与text类型之间关系的问题

关键词

  • 字段
  • 连接
  • 表
  • tb
  • 变量
  • 写入
  • col
  • pub
  • 合并
  • 记录

得分解答快速导航

  • 帖主:chechy
  • zjcxc

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo