sqlserver 修改数值为 数值=列名+数值

原来是正常的

列名1     列名2
数值1A   数值2A
数值1B   数值2B
数值1C   数值2C
数值1D   数值2D

现想做到 列名+数值

列名1     列名2        列名3
数值1A   数值2A      列名1:数值1A;列名2:数值2A
数值1B   数值2B      列名1:数值1B;列名2:数值2B
数值1C   数值2C      列名1:数值1C;列名2:数值2C
数值1D   数值2D      列名1:数值1D;列名2:数值2D

这张表的 列是**动态**的,

目前不知道该怎么写了

--TEST 代码
Create  table test
    (
     badge nvarchar(200)
    ,name nvarchar(200)
    )
    Insert into test select '010',N'张三' union all select '011',N'李四' union all select '012',N'王二' 
    select a.name into #a from dbo.syscolumns a  where a.id=object_id( 'test')
    select 
    (select 
        stuff((select ';'+c.name+':'+t.badge from  #a c for xml path('')) , 1 , 1 , '') )
    from test t
    select * from #a
    drop table #a
    drop table test

图片说明
可能是思路错了,求求各位大佬告知一下思路啊,又觉得原本很简单是不是想复杂l

https://blog.csdn.net/qq_24188927/article/details/81812820