2011-11-22 82 views
0

我使用的是以下代碼 它沒有返回結果。我在這裏錯過了什麼?SQL XML不返回數據

declare @iDoc INT   
    EXEC sp_xml_preparedocument @iDoc OUTPUT, '<Ids><Id Val ="40041">11</Id><Id Val ="40042">22</Id></Ids>' 
    Select @iDoc  
    Select Val FROM OPENXML (@iDoc, '/Ids/Id',2) WITH (Val varchar(10))  

回答

1

找到答案 - 替換 '/ IDS/ID',2 '/ IDS/ID',5

1

我更喜歡在查詢的WITH部分使用XPath。這樣,您不必擔心OPENXML函數的第三個參數。無論第三個參數如何(可以是任何值),以下代碼都可以工作。

declare @iDoc INT   

EXEC sp_xml_preparedocument @iDoc OUTPUT, '<Ids><Id Val ="40041">11</Id><Id Val ="40042">22</Id></Ids>' 

Select * 
FROM OPENXML (@iDoc, '/Ids/Id',2) 
WITH (Val varchar(10) '@Val', 
     Id int '.') 

EXEC sp_xml_removedocument @iDoc