如何从SQLServer存储过程中的xml节点创建游标?

如何从SQLServer存储过程中的xml节点创建游标?,sql,sql-server,xml,tsql,stored-procedures,Sql,Sql Server,Xml,Tsql,Stored Procedures,我将XML文档作为参数传递给存储过程。然后,我尝试填充一个游标,以便循环遍历XML的元素。我的问题是如何选择这个XML文档的每个元素并用它们填充光标 XML文档 <Authors> <Author_id>1</Author_id> <Author_id>2</Author_id> </Authors> 您可以使用和: DECLARE@authors XML= “ 工作原理: 声明作者\u光标 选择n.c.v

我将XML文档作为参数传递给存储过程。然后,我尝试填充一个游标,以便循环遍历XML的元素。我的问题是如何选择这个XML文档的每个元素并用它们填充光标

XML文档

<Authors>
    <Author_id>1</Author_id>
    <Author_id>2</Author_id>
</Authors>
您可以使用和:

DECLARE@authors XML=
“

工作原理:

声明作者\u光标
选择n.c.value('.',INT')作为作者id
来自@authors.nodes('/authors/Author_id')的n(c);
  • @authors.nodes('/authors/Author_id')
    根据
    XQuery
    和派生表的别名获取节点,分别为
    n
    c
    -列

  • 使用
    n.c.value('.','INT')作为作者id来获取元素的实际值


  • @VR46谢谢:)我也在准备,看起来很棒。你能解释一下n.c.value和n(c)中的n.c是什么意思吗?@JimVer添加了解释,只需使用xml方法,添加别名,从节点获取值