簡體   English   中英

如何從SQL Server中的XML獲取子XML

[英]How to get child xml from an xml in sql server

我的XML格式是這樣的:

<Main>
  <IsD>false</IsD>
  <IsN>true</IsN>
  <ID>826e03b3-191c-40c9-8a3d-f6607842fa5f</ID>
  <ClientId>c6a32c38-0398-4806-b82f-e924f96217fa</ClientId>
  <General>
    <IsD>false</IsD>
    <IsN>true</IsN>
    <State>New</State>
    <TypeID>1</TypeID>
    <ProductID>-1</ProductID>
    <PeriodId>1</PeriodId>
    <StateID>5</StateID>
    <Rating>8</Rating>
  </General>
  <Feature>
    <TypeID>2</TypeID>
    <DurationID>-1</DurationID>
    <ClassID>-1</ClassID>
    <Fee>2500</Fee>
    <BonusID>-1</BonusID>
    <BenefitID>15</BenefitID>
  </Feature>
</Main>

我已將此xml傳遞給存儲過程,並且在此存儲過程中,我將所有Main節點數據保存在主表中。

但是現在對於通用表和功能表,我正在使用另一個sp,並且我希望將標簽上的所有子節點作為xml傳遞給此generalinertionsp並與功能相同。

但是我如何將這些節點傳遞給另一個sp。

我如何讀取內部子節點值作為xml並將部分xml傳遞給另一個sp?

如果@x是您的XML變量

 select @x.query('/Main/General')
 select @x.query('/Main/Feature')

會給你的孩子節點

您可以使用SQL Server中的.query()函數來選擇原始XML的片段:

DECLARE @input XML = '... (your XML here).....' 

SELECT 
    GeneralNode = @input.query('Main/General'),
    FeatureNode = @input.query('Main/Feature')

現在,您可以將此XML片段傳遞到其他存儲過程中進行處理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM