sqlserver 数据库编程的绝好脚本

源代码在线查看: 3.7.3 text与ntext字段的复制和合并处理示例.sql

软件大小: 273 K
上传用户: wyly
关键词: sqlserver 数据库 编程 脚本
下载地址: 免注册下载 普通下载 VIP

相关代码

				--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
				--*/
							

相关资源