2011-11-22 86 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