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

解决方案 »

  1.   

    意思是:
    原有一条记录sn = '9812'
    如果更新该记录的话,就将该记录的原有所有字段的内容(不包括保存的字段'text')保存到该条记录中指定的字段'text'中去,保存的格式为:保存时间:
    字段1,字段2,字段3........
    数据1,数据2,数据3........保存完成后该记录更新为新值不知说明白了没有?
      

  2.   

    樓主看看這個是不是你要的效果
    --創建測試環境
    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
    */