zoukankan      html  css  js  c++  java
  • sqlserver 处理输入的xml数据的两种方式

    一段xml数据:

    <DataTable><RowData><Id>-1</Id><name>name0</name><age>0</age></RowData><RowData><Id>-2</Id><name>name1</name><age>1</age></RowData><RowData><Id>-3</Id><name>name2</name><age>2</age></RowData><RowData><Id>-4</Id><name>name3</name><age>3</age></RowData><RowData><Id>-5</Id><name>name4</name><age>4</age></RowData><RowData><Id>-6</Id><name>name5</name><age>5</age></RowData><RowData><Id>-7</Id><name>name6</name><age>6</age></RowData><RowData><Id>-8</Id><name>name7</name><age>7</age></RowData><RowData><Id>-9</Id><name>name8</name><age>8</age></RowData><RowData><Id>-10</Id><name>name9</name><age>9</age></RowData></DataTable>


    下面是处理这段xml数据的两种方式,后一种方式比前一个快.快多了

    ALTER PROCEDURE [dbo].[InsertT1withXML]
    @xml xml
    AS
    BEGIN

    insert into t1(name,age)
    select XmlTable.Data.value('(./name)[1]','nvarchar(50)') as Name,
    XmlTable.Data.value('(./age)[1]','int') as Age
    from @xml.nodes('//DataTable/RowData') as XmlTable(Data)

    end
    ALTER PROCEDURE [dbo].[InsertT1withXML]
    @xml xml
    AS
    BEGIN

    declare @idoc int
    EXEC sp_xml_preparedocument @idoc OUTPUT, @xml
    -- Execute a SELECT statement that uses the OPENXML rowset provider.

    insert into t1(name,age)
    SELECT name,age
    FROM OPENXML (@idoc, '/DataTable/RowData',2)
    WITH (id int,
    name varchar(20),
    age int
    )
    END
  • 相关阅读:
    高精准加法和乘法
    高精度加法
    病毒!!!!
    真真真·高精度乘法!!!!!
    急训 Day 1 (2)
    UVA Open Credit System Uva 11078
    SPOJ 375 Query on a tree 树链剖分模板
    安卓数据包的传递 Bundle
    Android studio 如何在Activity之间传递简单的数据
    java关系运算中的控制和使用
  • 原文地址:https://www.cnblogs.com/brucepark/p/2287270.html
Copyright © 2011-2022 走看看