在每个子元素上运行存储过程

时间:2013-06-10 04:21:41

标签: sql sql-server

我正在使用Microsoft SQL Server 2008。

我有这个xml:

<Root>
<Child>
<a>1</a>
<b>2</b>
</Child>
<Child>
<a>3</a>
<b>4</b>
</Child>
<Root>

拥有存储过程(“spChild”),它接受子元素并负责处理。

需要编写一个在每个“<Child>”元素上调用“spChild”的存储过程。该存储过程接受上面的整个xml。

最好的方法是什么?

我试过这样做:

WHILE @currentChildItemIndex <= @countChildItems
    BEGIN
            SET @ChildItem = @DataInXML.value('data(/Root/Child[.= sql:variable("@currentChildItemIndex ")])[1]' ,'int')
        EXEC @returnValue = MyDB.dbo.spChild @childXML

        SET @currentChildItemIndex = @currentChildItemIndex + 1
    END

0 个答案:

没有答案