Sql server 将XML节点插入SQL Server中的表中
我想获取一个XML数据,并将每个节点值插入表的一行中。例如,我有:Sql server 将XML节点插入SQL Server中的表中,sql-server,xml,xquery,Sql Server,Xml,Xquery,我想获取一个XML数据,并将每个节点值插入表的一行中。例如,我有: <Tags> <Tag>a</Tag> <Tag>b</Tag> <Tag>c</Tag> </Tags> 不要使用WHILE循环-集中思考 只需一句话,您就可以轻松做到这一点: INSERT INTO #T(tag) SELECT XTags.value('.', 'nvarc
<Tags>
<Tag>a</Tag>
<Tag>b</Tag>
<Tag>c</Tag>
</Tags>
不要使用WHILE循环-集中思考
只需一句话,您就可以轻松做到这一点:
INSERT INTO #T(tag)
SELECT
XTags.value('.', 'nvarchar(100)')
FROM
@TagsXML.nodes('/Tags/Tag') AS XTbl(XTags)
对.nodes的调用为您提供了一个XML标记列表,这些标记以XML片段的形式与这个XPath表达式相匹配——在这里,您可以获得所有元素的列表。从XML片段列表中,我选择唯一元素的内容为nvarchar100,并将其插入表中。通过使用WHILE循环折磨行方法,比RBAR行更高效、性能更好不要使用WHILE循环-集中思考
只需一句话,您就可以轻松做到这一点:
INSERT INTO #T(tag)
SELECT
XTags.value('.', 'nvarchar(100)')
FROM
@TagsXML.nodes('/Tags/Tag') AS XTbl(XTags)
对.nodes的调用为您提供了一个XML标记列表,这些标记以XML片段的形式与这个XPath表达式相匹配——在这里,您可以获得所有元素的列表。从XML片段列表中,我选择唯一元素的内容为nvarchar100,并将其插入表中。通过使用WHILE循环折磨行方法,比RBAR行更高效、性能更好