Sql server 用于在元素级别拆分t-sql@xml变量的游标

Sql server 用于在元素级别拆分t-sql@xml变量的游标,sql-server,xml,tsql,cursor,Sql Server,Xml,Tsql,Cursor,我需要定义一些游标,以便将元素级别的t-sql@xml变量拆分为不同的@xml 例如: <root> <element id=10/> <element id=11/> <element id=12/> <element id=13/> </root> 以便在tsql游标内部获得以下值: 然后 依此类推,其中n个元素pro cursor循环。好的,您可以使用内置函数来操作XML。例如,以下语句: DECLARE @

我需要定义一些游标,以便将元素级别的t-sql@xml变量拆分为不同的@xml

例如:

<root>
<element id=10/>
<element id=11/>
<element id=12/>
<element id=13/>
</root>

以便在tsql游标内部获得以下值:

然后


依此类推,其中n个元素pro cursor循环。

好的,您可以使用内置函数来操作
XML
。例如,以下语句:

DECLARE @XML XML = N'<root><element id="10"/><element id="11"/><element id="12"/><element id="13"/></root>'

SELECT  ROW_NUMBER() OVER (ORDER BY T.c) 
       ,T.c.query('.')
FROM @XML.nodes('root/element') T(c)

为什么要使用游标执行此操作?因为我可以将大型xml文件拆分为不同的事务
DECLARE @XML XML = N'<root><element1 id="10"/><element2 id="11"/><element3 id="12"/><element4 id="13"/></root>'

SELECT  ROW_NUMBER() OVER (ORDER BY T.c) 
       ,T.c.query('.')
FROM @XML.nodes('root/*') T(c)