Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在SQL Server 2008中使用OpenXML命令时没有返回值_Sql_Sql Server 2008 R2_Openxml - Fatal编程技术网

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

在SQL Server 2008中使用OpenXML命令时没有返回值,sql,sql-server-2008-r2,openxml,Sql,Sql Server 2008 R2,Openxml,这是我设置为@XMLSave参数并发送到存储过程的XML参数 <ROOT> <P> <ID>123456789</ID> <Name>admin</Name> </P> <Group> <GroupCardID>14</GroupCardID> </Group> </ROOT> 但当我

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

<ROOT>
   <P>
      <ID>123456789</ID>
      <Name>admin</Name>
    </P>
    <Group>
       <GroupCardID>14</GroupCardID>
    </Group>
</ROOT>
但当我选择“值”时,不返回任何值

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

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')
DECLARE@XmlParameter='XML'>

123456789 管理

14 ' 挑选 @值('(/ROOT/P/ID)[1]',int')

我总是更喜欢原生的XQuery支持,而不是笨重的旧的
OPENXML
东西……

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

谢谢。但这是在旧系统上,我必须解决一些问题,目前无法改变它的结构。是的,我需要。但我正在从事我之前开发的项目。必须通过OPENXML进行修复。
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')