您好我需要通过从子节点
中选择值来填充表格XML看起来像这样
<Transmitters>
<Id>1</Id><CoverageLevel>2</CoverageLevel>
<Id>2</Id><CoverageLevel>4</CoverageLevel>
<Id>3</Id><CoverageLevel>6</CoverageLevel>
</Transmitters>
和表有两个字段
Transmitter(Id, CoverageLevel)
INSERT INTO
Transmitter([idTransmitter], [coverageLevel])
SELECT
ParamValues.T.value('Id[1]', 'nvarchar(50)'),
ParamValues.T.value('CoverageLevel[1]', 'nvarchar(50)')
FROM
@otherTransmitter.nodes('//Transmitters') AS ParamValues(T)
但它不起作用?
答案 0 :(得分:3)
您的XML格式不适合此类任务 - 您可以依赖<Transmitters>
内的任何可用子节点。
如果您的XML看起来像这样:
<Transmitters>
<Transmitter>
<Id>1</Id><CoverageLevel>2</CoverageLevel>
</Transmitter>
<Transmitter>
<Id>2</Id><CoverageLevel>4</CoverageLevel>
</Transmitter>
<Transmitter>
<Id>3</Id><CoverageLevel>6</CoverageLevel>
</Transmitter>
</Transmitters>
然后你可以使用XPath表达式
@otherTransmitter.nodes('/Transmitters/Transmitter') AS ParamValues(T)
抓住你的价值观。
您没有 - 您的<Id>
中只有个人<CoverageLevel>
和<Transmitters>
- 没有“容器”XML标记将这些元素组合在一起。< / p>
真的没有XPath可以让你正确地枚举那些节点.....