日期:2014-05-18  浏览次数:20571 次

将一行数据变成字串并保存到某一个字段(邹健帮我!!!)
在存储过程中:
要求将下列的查询的结果变成一字段保存到该表的某一个字段中
所有字段除(text字段是ntext类型外)都是varchar(100)类型,
如:
select   *   from     aa   where   编号= '981213 '     返回0-1行数据
其中仅知两个字段名:   text,编号     ,其中text字段用来保存旧内容的,   其它的字段名未知,将所有字段名和当前值变成两行字串(除text字段外)保存到text字段中




------解决方案--------------------
樓主看看這個是不是你要的效果


--創建測試環境
Create Table aa
(編號 varchar(100),
C1 varchar(100),
C2 varchar(100),
C3 varchar(100),
C4 varchar(100),
C5 varchar(100),
[text] Text)
--插入數據
Insert aa Select '981213 ', 'aaaaaaa ', 'bbbbbbbb ', 'cccccccc ', 'dddddddd ', 'eeeeeeeeeee ', ' '
Union All Select '981215 ', 'dasdsa ', 'dasdsab ', '32532cc ', 'd656d ', '55767 ', ' '
GO
--創建存儲過程
Create ProceDure SP_TEST
As
Begin
Declare @S1 Varchar(8000), @S2 Varchar(8000)
Select @S1 = ' ', @S2 = ' '
Select @S1 = @S1 + ' + ' ', ' ' + ' ' ' + Name + ' ' ' ', @S2 = @S2 + ' + ' ', ' ' + ' + Name
From SysColumns Where ID = OBJECT_ID( 'aa ') And Name != 'text ' Order By ColID
Select @S1 = Stuff(@S1, 1, 8, ' '), @S2 = Stuff(@S2, 1, 8, ' ')
EXEC( 'Update aa Set [text] = ' + @S1 + ' + Char(10) + Char(13) + ' + @S2)
End
GO
--測試
EXEC SP_TEST
Select * From aa
GO
--刪除測試環境
Drop Table aa
Drop ProceDure SP_TEST
--結果
/*
編號 C1 C2 C3 C4 C5 text
981213 aaaaaaa bbbbbbbb cccccccc dddddddd eeeeeeeeeee 編號,C1,C2,C3,C4,C5 981213,aaaaaaa,bbbbbbbb,cccccccc,dddddddd,eeeeeeeeeee
981215 dasdsa dasdsab 32532cc d656d 55767 編號,C1,C2,C3,C4,C5 981215,dasdsa,dasdsab,32532cc,d656d,55767
*/