在SQL Server 2008中使用OpenXML命令没有返回值

时间:2014-01-13 19:54:58

标签: sql sql-server-2008-r2 openxml

这是我设置为@XMLSave参数并发送到存储过程

的XML参数
<ROOT>
   <P>
      <ID>123456789</ID>
      <Name>admin</Name>
    </P>
    <Group>
       <GroupCardID>14</GroupCardID>
    </Group>
</ROOT>

我尝试使用此命令获取ID

EXEC sp_xml_preparedocument @idoc OUTPUT, @XMLSave

但是当我选择值时返回没有值

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

2 个答案:

答案 0 :(得分: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内容.....

答案 1 :(得分:0)

我终于找到了答案: OpenXML参数区分大小写: 我的XML值以“ROOT”开头,openxml参数是“Root”