通过列的SQL查询更新循环

时间:2019-02-01 09:28:04

标签: sql sql-server stored-procedures backend procedure

我的存储过程中有一个xml参数,我需要检查并将这些值过滤到表中

<Root>
  <SupplierID>3</SupplierID>
  <step Step="1">
    <Payment>1</Payment>                 
    <dayofpayment>01.06.18</dayofpayment>
  </step>
  <step Step="2">
    <Payment>0</Payment>
    <dayofpayment></dayofpayment>
  </step>
</Root>

这是我的xml,它通过过程中名为@Xml的变量传递。我的桌子看起来像这样

+ -------------- + ----------------- + ------------- ---- + ---------------- +
|供应商编号| paid_step_1 | paid_step_2 | paid_step3 |
+ -------------- + ----------------- + ---------------- -+ ---------------- +
‌‌ | ‌‌ ‌ ‌ ‌ ‌ ‌‌ ‌‌ ‌‌ ‌‌ ‌‌ ‌‌ ‌‌ ‌‌ ‌‌ ‌‌ ‌‌ ‌‌ ‌‌ ‌‌ ‌‌ ‌‌ ‌‌ ‌‌ ‌‌ ‌‌ ‌‌ ‌‌ ‌‌ ‌‌ ‌‌ ‌‌ ‌‌ | ‌‌ ‌‌ ‌‌ ‌‌ ‌‌ ‌‌ ‌‌ ‌‌ | ‌‌ ‌‌ ‌‌ ‌‌ ‌‌ ‌‌ ‌‌ ‌‌ <<<|
+ -------------- + ----------------- + ---------------- -+ ---------------- +

我已经设法使用以下方法来解析xml:

With XmlTable as (
Select
    Payment = Tbl.Col.value('Payment[1]', 'varchar(1)'),  
    Day_of_payment = Tbl.Col.value('dayofpayment[1]', 'varchar(10)'),  
FROM   @XML.nodes('//step ') Tbl(Col)
)
  

我的问题是:如何正确将xml传输到表中?

0 个答案:

没有答案