pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

  • <small id='RLMFQ'></small><noframes id='RLMFQ'>

      <legend id='RLMFQ'><style id='RLMFQ'><dir id='RLMFQ'><q id='RLMFQ'></q></dir></style></legend>

      1. <tfoot id='RLMFQ'></tfoot>

        • <bdo id='RLMFQ'></bdo><ul id='RLMFQ'></ul>
        <i id='RLMFQ'><tr id='RLMFQ'><dt id='RLMFQ'><q id='RLMFQ'><span id='RLMFQ'><b id='RLMFQ'><form id='RLMFQ'><ins id='RLMFQ'></ins><ul id='RLMFQ'></ul><sub id='RLMFQ'></sub></form><legend id='RLMFQ'></legend><bdo id='RLMFQ'><pre id='RLMFQ'><center id='RLMFQ'></center></pre></bdo></b><th id='RLMFQ'></th></span></q></dt></tr></i><div class="cf3df12" id='RLMFQ'><tfoot id='RLMFQ'></tfoot><dl id='RLMFQ'><fieldset id='RLMFQ'></fieldset></dl></div>

        以遞歸方式將 xml 粉碎到數據庫中

        shredding xml recursively into the database(以遞歸方式將 xml 粉碎到數據庫中)
        <i id='T5rM4'><tr id='T5rM4'><dt id='T5rM4'><q id='T5rM4'><span id='T5rM4'><b id='T5rM4'><form id='T5rM4'><ins id='T5rM4'></ins><ul id='T5rM4'></ul><sub id='T5rM4'></sub></form><legend id='T5rM4'></legend><bdo id='T5rM4'><pre id='T5rM4'><center id='T5rM4'></center></pre></bdo></b><th id='T5rM4'></th></span></q></dt></tr></i><div class="trnvnb5" id='T5rM4'><tfoot id='T5rM4'></tfoot><dl id='T5rM4'><fieldset id='T5rM4'></fieldset></dl></div>

                <bdo id='T5rM4'></bdo><ul id='T5rM4'></ul>

                <small id='T5rM4'></small><noframes id='T5rM4'>

                  <tbody id='T5rM4'></tbody>

              • <tfoot id='T5rM4'></tfoot>
                  <legend id='T5rM4'><style id='T5rM4'><dir id='T5rM4'><q id='T5rM4'></q></dir></style></legend>

                • 本文介紹了以遞歸方式將 xml 粉碎到數據庫中的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

                  問題描述

                  限時送ChatGPT賬號..

                  我有以下 XML 數據和元素表.

                  I have the following XML data and the Element table.

                  DECLARE @input XML = '<root>
                       <C1>
                         <C2>
                           <C3>           <C4>data1</C4>       </C3>         
                         </C2>
                         <C2>
                           <C3>data2</C3>
                         </C2>
                       </C1>
                       <D1>
                          <D2>data3</D2>
                          <D2>data4</D2>
                       </D1>
                      </root>'
                  

                  元素表:(這只是一個例子,因此可以更改以匹配適當的解決方案.)

                  Element table:( this is just an example so can be changed to match an appropriate solution.)

                  CREATE TABLE Element (  elementId INT IDENTITY PRIMARY KEY, 
                  elementName VARCHAR (200) NOT NULL, 
                  parentId INT,   
                  data VARCHAR(300) );
                  

                  根據@input,根元素是C1和D1的父元素,那么C1是C2的父元素,...

                  According to @input the root element is parent of C1 and D1, then C1 is C2 parent, ...

                  SQL server 2012/2014 使用 CTE(或任何其他類型的 SQL 對象)編寫存儲過程以遞歸方式將所有元素名稱放入 Element 表的解決方案是什么?

                  What is the solution for SQL server 2012/2014 to code a stored procedure with CTE (or any other type of SQL object) to recursively put all element names into the Element table?

                  在這種情況下,數據列填充了數據,C4 和第二個 C3 和 D2 元素有數據,其余元素為空.

                  data column fills with data in this case, the C4 and the second C3, and D2 elements have data the rest of element are null.

                  我也看到了分層數據類型,我想知道這是否有助于解決這個問題?

                  I also saw Hierarchical Data type and I wonder if that could be helpful to solve this problem?

                  推薦答案

                  With OpenXML 您可以使用 元屬性.

                  With OpenXML you can get a table representation of your XML with ID and ParentID columns using the metaproperties.

                  在合并中使用 XML 查詢將允許您創建映射表elementId 標識列和來自 XML 的 DOM 節點 ID 之間.

                  Using the XML query in a merge will allow you to create a mapping table between the elementId identity column and the DOM node id from the XML.

                  最后一步是使用映射表更新Element中的parentId.

                  The last step is to use the mapping table to update parentId in Element.

                  SQL 小提琴

                  MS SQL Server 2008 架構設置:

                  CREATE TABLE Element (  elementId INT IDENTITY PRIMARY KEY, 
                  elementName VARCHAR (200) NOT NULL, 
                  parentId INT,   
                  data VARCHAR(300) );
                  

                  查詢 1:

                  declare @input xml = '
                  <root>
                    <C1>
                      <C2>
                        <C3>
                          <C4>data1</C4>
                        </C3>
                      </C2>
                      <C2>
                        <C3>data2</C3>
                      </C2>
                    </C1>
                    <D1>
                      <D2>data3</D2>
                      <D2>data4</D2>
                    </D1>
                  </root>';
                  
                  -- OpenXML handle
                  declare @D int;
                  
                  -- Table that capture output of merge with mapping between 
                  -- DOM node id and the identity column elementID in Element 
                  declare @T table
                  (
                    ID int,
                    ParentID int,
                    ElementID int
                  );
                  
                  -- Parse XML and get a handle
                  exec sp_xml_preparedocument @D output, @input;
                  
                  -- Add rows to Element and fill the mapping table @T
                  merge into dbo.Element as E
                  using ( 
                        select *
                        from openxml(@D, '//*') with 
                          (
                            ID int '@mp:id',
                            ParentID int '@mp:parentid',
                            Data varchar(300) 'text()',
                            ElementName varchar(200) '@mp:localname'
                          )
                        ) as S
                  on 0 = 1
                  when not matched by target then
                    insert (elementName, data) values (S.ElementName, S.data)
                  output S.ID, S.ParentID, inserted.elementID into @T;
                  
                  -- Update parentId in Elemet
                  update E
                  set parentId =  T2.ElementID
                  from dbo.Element as E
                    inner join @T as T1
                      on E.elementId = T1.ElementID
                    inner join @T as T2
                      on T1.ParentID = T2.ID
                  
                  
                  -- Relase the XML document
                  exec sp_xml_removedocument @D;
                  
                  select *
                  from Element;
                  

                  結果:

                  | ELEMENTID | ELEMENTNAME | PARENTID |   DATA |
                  |-----------|-------------|----------|--------|
                  |         1 |        root |   (null) | (null) |
                  |         2 |          C1 |        1 | (null) |
                  |         3 |          C2 |        2 | (null) |
                  |         4 |          C3 |        3 | (null) |
                  |         5 |          C4 |        4 |  data1 |
                  |         6 |          C2 |        2 | (null) |
                  |         7 |          C3 |        6 |  data2 |
                  |         8 |          D1 |        1 | (null) |
                  |         9 |          D2 |        8 |  data3 |
                  |        10 |          D2 |        8 |  data4 |
                  

                  這篇關于以遞歸方式將 xml 粉碎到數據庫中的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

                  【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

                  相關文檔推薦

                  SQL query to get all products, categories and meta data woocommerce/wordpress(獲取所有產品、類別和元數據的 SQL 查詢 woocommerce/wordpress)
                  Can I figure out a list of databases and the space used by SQL Server instances without writing SQL queries?(我可以在不編寫 SQL 查詢的情況下找出數據庫列表和 SQL Server 實例使用的空間嗎?) - IT屋-程序員軟件開發
                  How to create a login to a SQL Server instance?(如何創建對 SQL Server 實例的登錄?)
                  How to know the version and edition of SQL Server through registry search(如何通過注冊表搜索知道SQL Server的版本和版本)
                  Why do I get a quot;data type conversion errorquot; with ExecuteNonQuery()?(為什么會出現“數據類型轉換錯誤?使用 ExecuteNonQuery()?)
                  How to show an image from a DataGridView to a PictureBox?(如何將 DataGridView 中的圖像顯示到 PictureBox?)

                  <legend id='8qg6b'><style id='8qg6b'><dir id='8qg6b'><q id='8qg6b'></q></dir></style></legend>

                  <small id='8qg6b'></small><noframes id='8qg6b'>

                        <tbody id='8qg6b'></tbody>

                        <tfoot id='8qg6b'></tfoot>
                          <bdo id='8qg6b'></bdo><ul id='8qg6b'></ul>
                          • <i id='8qg6b'><tr id='8qg6b'><dt id='8qg6b'><q id='8qg6b'><span id='8qg6b'><b id='8qg6b'><form id='8qg6b'><ins id='8qg6b'></ins><ul id='8qg6b'></ul><sub id='8qg6b'></sub></form><legend id='8qg6b'></legend><bdo id='8qg6b'><pre id='8qg6b'><center id='8qg6b'></center></pre></bdo></b><th id='8qg6b'></th></span></q></dt></tr></i><div class="77xlzjb" id='8qg6b'><tfoot id='8qg6b'></tfoot><dl id='8qg6b'><fieldset id='8qg6b'></fieldset></dl></div>
                            主站蜘蛛池模板: 干洗店加盟_洗衣店加盟_干洗店设备-伊蔻干洗「武汉总部」 | 北京三友信电子科技有限公司-ETC高速自动栏杆机|ETC机柜|激光车辆轮廓测量仪|嵌入式车道控制器 | 不锈钢法兰-碳钢法兰-法兰盘生产加工厂家-[鼎捷峰]-不锈钢法兰-碳钢法兰-法兰盘生产加工厂家-[鼎捷峰] | 真空包装机-诸城市坤泰食品机械有限公司 | 广东恩亿梯电源有限公司【官网】_UPS不间断电源|EPS应急电源|模块化机房|电动汽车充电桩_UPS电源厂家(恩亿梯UPS电源,UPS不间断电源,不间断电源UPS) | 长沙网站建设制作「网站优化推广」-网页设计公司-速马科技官网 | 悬浮拼装地板_篮球场木地板翻新_运动木地板价格-上海越禾运动地板厂家 | 杰恒蠕动泵-蠕动泵专业厂家-19年专注蠕动泵 | led全彩屏-室内|学校|展厅|p3|户外|会议室|圆柱|p2.5LED显示屏-LED显示屏价格-LED互动地砖屏_蕙宇屏科技 | 氢氧化钙设备, 氢氧化钙生产线-淄博惠琛工贸有限公司 | 工业车间焊接-整体|集中除尘设备-激光|等离子切割机配套除尘-粉尘烟尘净化治理厂家-山东美蓝环保科技有限公司 | 上海防爆真空干燥箱-上海防爆冷库-上海防爆冷柜?-上海浦下防爆设备厂家? | 深圳善跑体育产业集团有限公司_塑胶跑道_人造草坪_运动木地板 | 液压升降货梯_导轨式升降货梯厂家_升降货梯厂家-河南东圣升降设备有限公司 | 耐酸碱胶管_耐腐蚀软管总成_化学品输送软管_漯河利通液压科技耐油耐磨喷砂软管|耐腐蚀化学软管 | 灰板纸、灰底白、硬纸板等纸品生产商-金泊纸业 | 济南货架定做_仓储货架生产厂_重型货架厂_仓库货架批发_济南启力仓储设备有限公司 | 西宁装修_西宁装修公司-西宁业之峰装饰-青海业之峰墅级装饰设计公司【官网】 | 水篦子|雨篦子|镀锌格栅雨水篦子|不锈钢排水篦子|地下车库水箅子—安平县云航丝网制品厂 | 留学生辅导网-在线课程论文辅导-留学生挂科申诉机构 | 智成电子深圳tdk一级代理-提供TDK电容电感贴片蜂鸣器磁芯lambda电源代理经销,TDK代理商有哪些TDK一级代理商排名查询。-深圳tdk一级代理 | 压接机|高精度压接机|手动压接机|昆明可耐特科技有限公司[官网] 胶泥瓷砖胶,轻质粉刷石膏,嵌缝石膏厂家,腻子粉批发,永康家德兴,永康市家德兴建材厂 | 细胞染色-流式双标-试剂盒免费代做-上海研谨生物科技有限公司 | 洛阳网站建设_洛阳网站优化_网站建设平台_洛阳香河网络科技有限公司 | 南京种植牙医院【官方挂号】_南京治疗种植牙医院那个好_南京看种植牙哪里好_南京茀莱堡口腔医院 尼龙PA610树脂,尼龙PA612树脂,尼龙PA1010树脂,透明尼龙-谷骐科技【官网】 | 温州中研白癜风专科_温州治疗白癜风_温州治疗白癜风医院哪家好_温州哪里治疗白癜风 | 东莞猎头公司_深圳猎头公司_广州猎头公司-广东万诚猎头提供企业中高端人才招聘服务 | 企典软件一站式企业管理平台,可私有、本地化部署!在线CRM客户关系管理系统|移动办公OA管理系统|HR人事管理系统|人力 | Boden齿轮油泵-ketai齿轮泵-yuken油研-无锡新立液压有限公司 | ERP企业管理系统永久免费版_在线ERP系统_OA办公_云版软件官网 | 深圳工程师职称评定条件及流程_深圳职称评审_职称评审-职称网 | 机构创新组合设计实验台_液压实验台_气动实训台-戴育教仪厂 | 天津蒸汽/热水锅炉-电锅炉安装维修直销厂家-天津鑫淼暖通设备有限公司 | 国标白水泥,高标号白水泥,白水泥厂家-淄博华雪建材有限公司 | 电力测功机,电涡流测功机,磁粉制动器,南通远辰曳引机测试台 | 刚性-柔性防水套管-橡胶伸缩接头-波纹管补偿器-启腾供水材料有限公司 | 锂电叉车,电动叉车_厂家-山东博峻智能科技有限公司 | 药品冷藏箱厂家_低温冰箱_洁净工作台-济南欧莱博电子商务有限公司官网 | 西门子伺服控制器维修-伺服驱动放大器-828D数控机床维修-上海涌迪 | 罐体电伴热工程-消防管道电伴热带厂家-山东沃安电气 | 高压无油空压机_无油水润滑空压机_水润滑无油螺杆空压机_无油空压机厂家-科普柯超滤(广东)节能科技有限公司 |