代码之家  ›  专栏  ›  技术社区  ›  cllpse

存储过程:将XML作为参数传递并插入(键/值对)

  •  8
  • cllpse  · 技术社区  · 14 年前

    如何构造XML并将其作为参数传递给MS SQL 2005服务器上的存储过程?你会怎么做? INSERT 将XML放入表中?

    数据采用键/值对的形式:

    [
        0: [key, value],
        1: [key, value],
        2: [key, value]
    ]
    
    1 回复  |  直到 10 年前
        1
  •  16
  •   Mikael Eriksson    10 年前

    以下是一个例子:

    /* Create the stored procedure */
    create procedure ParseXML (@InputXML xml)
    as
    begin
        declare @MyTable table (
            id int,
            value int
        )
    
        insert into @MyTable 
            (id, value)
            select Row.id.value('@id','int'), Row.id.value('@value','int') 
                from @InputXML.nodes('/Rows/Row') as Row(id)        
    
        select id, value
            from @MyTable
    end
    go
    
    /* Create the XML Parameter */
    declare @XMLParam xml
    set @XMLParam = '<Rows>
                         <Row id="1" value="100" />
                         <Row id="2" value="200" />
                         <Row id="3" value="300" />
                     </Rows>'
    
    /* Call the stored procedure with the XML Parameter */
    exec ParseXML @InputXML = @XMLParam
    
    /* Clean up - Drop the procedure */
    drop procedure ParseXML
    go