2014-01-13 74 views
0

這是我設置爲@XMLSave參數發送到存儲過程在SQL Server中使用的OpenXML命令沒有返回值2008

<ROOT> 
    <P> 
     <ID>123456789</ID> 
     <Name>admin</Name> 
    </P> 
    <Group> 
     <GroupCardID>14</GroupCardID> 
    </Group> 
</ROOT> 

我的XML參數,我試圖讓ID值與此命令

EXEC sp_xml_preparedocument @idoc OUTPUT, @XMLSave 

但是當我選擇的值沒有返回值

select * 
from OPENXML (@idoc,'/Root/P',2) With(ID int) 

回答

1

試試這個:

DECLARE @XmlParameter XML = '<ROOT> 
    <P> 
     <ID>123456789</ID> 
     <Name>admin</Name> 
    </P> 
    <Group> 
     <GroupCardID>14</GroupCardID> 
    </Group> 
</ROOT>' 

SELECT 
    @XmlParameter.value('(/ROOT/P/ID)[1]', 'int') 

我總是喜歡原生XQuery支持在笨重的老OPENXML東西.....

+0

謝謝。但這是在舊的系統,我必須解決一些問題,並不能改變其結構在這個時候 – MH2538

0

我終於找到了答案: OpenXML的參數是區分大小寫的: 我的XML值以「ROOT」開頭,openxml參數爲「Root」

+2

你不喜歡marc_s的解決方案? –

+0

是的,我願意。但我正在研究在我之前開發的項目。並且必須通過OPENXML進行修復。 – MH2538

相關問題