我正在使用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