将每个xml元素作为新行插入xml列

时间:2015-10-28 12:25:59

标签: sql sql-server

我有一个表格,我使用FOR XML转换为XML,并且表格中有XML

我想在表格中插入每个XML元素作为新行。

这是我在AdventureWorks数据库中尝试的一个简单示例:

create table test( xmldat xml)
insert into test d = (select * from Production.Person for xml raw)

这当然只填充整个xml的第一行,但我希望每个元素都在单独的行中。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

按键将数据拆分为带子查询的行:

INSERT INTO test
SELECT
(
    SELECT *
    FROM Production.Person o
    WHERE o.Id = a.Id
    for xml raw
) AS data
FROM Production.Person a