--1. 把一个表的text数据复制到另一个表。 --测试数据 CREATE TABLE #a(id int,a text) INSERT #a SELECT 1,'AA' UNION ALL SELECT 2,'BB' CREATE TABLE #b(id int,b text) INSERT #b SELECT 1,'XX' --用#a.a替换#b.b的数据,条件是#a.id=#b.id UPDATE b SET b=a.a FROM #a a,#b b WHERE a.id=b.id --把#a的数据复制到#b,条件是#a.id不在#b.id中 INSERT #b(id,b) SELECT id,a FROM #a a WHERE NOT EXISTS(SELECT * FROM #b WHERE id=a.id) --显示处理结果 SELECT * FROM #b DROP TABLE #a,#b /*--结果 id b ---------------- ------- 1 AA 2 BB --*/ GO /*===============================================*/ --2. 将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 '' UPDATETEXT tb.col @p NULL 0 tb.col1 @p1 UPDATETEXT tb.col @p NULL 0 '' END IF TEXTVALID('tb.col2',@p2)=1 BEGIN UPDATETEXT tb.col @p NULL 0 '' UPDATETEXT tb.col @p NULL 0 tb.col2 @p2 UPDATETEXT tb.col @p NULL 0 '' END FETCH tb INTO @p,@p1,@p2 END CLOSE tb DEALLOCATE tb GO --显示结果 SELECT * FROM tb DROP TABLE tb /*--结果 col col1 col2 -------------------------------------- ----------------------- ---------------------- ac2 NULL c2 b2c2 b2 c2 b3 b3 NULL --*/
23.text与ntext字段的赋值和合并处理案例
猜你喜欢
转载自blog.csdn.net/huang714/article/details/87928438
今日推荐
周排行