将值插入XML列子节点Sql Server

时间:2014-04-23 05:37:52

标签: sql sql-server xml

我有一个table1

Deptno  Skills

1       1
1       2
1       3
2       1
2       3
3       1
3       2

我需要将技能值作为子节点插入到table2中的XMl列中,以匹配Deptno

尝试使用

UPDATE 
   Dept
SET 
   XMLColumn.modify('insert ('Skills 2 /Skills)
   as last into
   (/Skills[1])
   ') where deptno = 1

但是如何使用其他表值并将它们嵌套到table2 xml列中?

1 个答案:

答案 0 :(得分:1)

update T2
set XMLColumn.modify('insert sql:column("T1.Skills") as last into Skills[1]')
from Table2 as T2
  cross apply (
              select T1.Skills
              from Table1 as T1
              where T2.Deptno = T1.Deptno
              for xml path(''), type
              ) as T1(Skills)
where T2.Deptno = 1

Deptno上的交叉应用中构建要插入的XML,并使用sql:column()将生成的XML拉入modify()语句。