百度首页 | 百度空间
 
查看文章
 
SQLserver text与ntext字段的复制和合并处理示例
2008-04-24 18:11

下面是text字段类型的字段合并,今天整了半天把下面的语句改成一个函数用,结果怎么也没改成,真是郁闷,以后有时间再搞好吧,理想是实现select F_text(txt1,txt2) as txt from t 把txt1和txt2合并成一个字段。

将tb表中的col1及col2列中的数据合并到col列中,并且在合并的数据前后加上列标识。
--测试数据
CREATE TABLE tb(col text,col1 text,col2 text)
INSERT tb SELECT 'a' ,NULL,'c2'
UNION ALL SELECT NULL,'b2','c2'
UNION ALL SELECT '' ,'b3',NULL
GO

--更新处理
DECLARE @p binary(16),@p1 binary(16),@p2 binary(16)
DECLARE tb CURSOR LOCAL
FOR
SELECT TEXTPTR(col),TEXTPTR(col1),TEXTPTR(col2) FROM tb
OPEN tb
FETCH tb INTO @p,@p1,@p2
WHILE @@FETCH_STATUS=0
BEGIN
IF TEXTVALID('tb.col',@p)=0
BEGIN
   UPDATE tb SET col='' WHERE CURRENT OF tb
   UPDATE tb SET @p=TEXTPTR(col) WHERE CURRENT OF tb
END
IF TEXTVALID('tb.col1',@p1)=1
BEGIN
   UPDATETEXT tb.col @p NULL 0 '<col1>'
   UPDATETEXT tb.col @p NULL 0 tb.col1 @p1
   UPDATETEXT tb.col @p NULL 0 '</col1>'
END
IF TEXTVALID('tb.col2',@p2)=1
BEGIN
   UPDATETEXT tb.col @p NULL 0 '<col2>'
   UPDATETEXT tb.col @p NULL 0 tb.col2 @p2
   UPDATETEXT tb.col @p NULL 0 '</col2>'
END
FETCH tb INTO @p,@p1,@p2
END
CLOSE tb
DEALLOCATE tb
GO

--显示结果
SELECT * FROM tb
DROP TABLE tb


类别:数据库技术-sqlserver | 添加到搜藏 | 浏览() | 评论 (0)
 
最近读者:
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码:
 

     

©2008 Baidu