使用XML向表中插入多个值

哈莎·W

我需要将RoleTypeID以下XML中的所有s(10,9)插入到表中。我遵循以下方法。它仅插入第0个索引的XML条目。如何解决这个问题?

DECLARE @ResourcePermissionXML xml = '<ResourcePermission><RoleTypeID>10</RoleTypeID><RoleTypeID>9</RoleTypeID></ResourcePermission>'

DECLARE @ResourcePermissionList AS TABLE(RoleTypeID INT);

INSERT INTO @ResourcePermissionList(RoleTypeID)
   SELECT Entries.value('(RoleTypeID)[1]', 'INT') AS RoleTypeID
   FROM @ResourcePermissionXML.nodes('/ResourcePermission') AS PermissionEntries(Entries)

SELECT * FROM @ResourcePermissionList
marc_s

只需将您的INSERT声明更改为此:

INSERT INTO @ResourcePermissionList(RoleTypeID)
   SELECT Entries.value('(.)[1]', 'INT') AS RoleTypeID
   FROM @ResourcePermissionXML.nodes('/ResourcePermission/RoleTypeID') AS PermissionEntries(Entries)

基本上,更改XPath表达式,.nodes()以使其返回每个<RoleTypeID>XML元素的XML片段列表-然后您可以“进入”该XML元素并获取其值,并且由于XPath将返回所有<RoleTypeID>元素,因此您将获取所有值。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章