sql 学习笔记

sql server如何将xml格式转换成表

DECLARE @ResultXml XML = '<DocumentElement>
    <dt>
        <CustomerCode>B77674</CustomerCode>
        <CustomerName>郑州日产汽车有限公司9999</CustomerName>
        <EnableMark>1</EnableMark>
        <ModifyDate>2017-10-25 06:09:02</ModifyDate>
    </dt>
    <dt>
        <CustomerCode>B776749</CustomerCode>
        <CustomerName>郑州日产汽车有限公司12398</CustomerName>
        <EnableMark>0</EnableMark>
        <ModifyDate>2017-10-25 06:09:03</ModifyDate>
    </dt>
    </DocumentElement>'

SELECT  aw.row.value('CustomerCode[1]', 'VARCHAR(50)') AS CustomerCode ,
        aw.row.value('CustomerName[1]', 'VARCHAR(50)') AS CustomerName ,
        aw.row.value('EnableMark[1]', 'BIT') AS EnableMark ,
        aw.row.value('ModifyDate[1]', 'DATETIME') AS ModifyDate
FROM    @ResultXml.nodes('/DocumentElement/dt') AS aw ( row );

这里写图片描述

MERGE语法的运用

MERGE INTO dbo.Customer AS customer
            --#tmpCustomer 数据源
                    USING 
                        ( SELECT    *
                          FROM      #tmpCustomer
                        ) AS tmp
                    ON customer.CustomerCode = tmp.CustomerCode
                    WHEN MATCHED 
                        THEN UPDATE
                         SET        customer.CustomerName = tmp.CustomerName ,
                                    customer.ModifyDate = tmp.ModifyDate ,
                                    customer.ModifyUserId = @CreateUserId
                    WHEN NOT MATCHED 
                        THEN
                            INSERT  (
                                      CustomerId ,
                                      CustomerCode ,
                                      CustomerName ,
                                      EnabledMark ,
                                      CreateDate ,
                                      CreateUserId ,
                                      OrganizeId
                                    )
                         VALUES     ( NEWID() ,
                                      tmp.CustomerCode ,
                                      tmp.CustomerName ,
                                      tmp.EnableMark ,
                                      tmp.ModifyDate ,
                                      @CreateUserId ,
                                      @OrganizeId
                                    );   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值