Конференция "Базы" » MS SQL 2008 и XML [MSSQL]
 
  • Miau (26.06.15 11:12) [0]
    Есть задача вытащить данные SQL-запросом из XML
    В простом случае оно решалось так:

    declare @X varchar(max)
    declare @xml_id int

    set @X =
    '<ROOT>
    <ROW A = \"1\" B = \"3\" />
    <ROW A = \"2\" B = \"2\" />
    <ROW A = \"3\" B = \"1\" />
    </ROOT>'


    exec sp_xml_preparedocument @xml_id out, @X

    select
    *
    from
    openxml (@xml_id, 'ROOT/ROW',1)
    with (A int, B int)
       
    exec sp_xml_removedocument @xml_id



    А есть ли возможность как-нибудь вытащить те же данные из такого формата:

    <ROOT>
    <ROW><A>1</A>3</ROW>
    <ROW><A>2</A>2</ROW>
    <ROW><A>3</A>1</ROW>
    </ROOT>

  • кгшзх © (26.06.15 11:19) [1]
    select
    *
    from
    openxml (@xml_id, 'ROOT/ROW',2)
    with (A int,
         B int '.'
    )
  • Miau (26.06.15 11:26) [2]
    кгшзх

    Спасибо!
  • кгшзх © (26.06.15 11:31) [3]
    должна будешь.
  • кгшзх © (26.06.15 11:40) [4]
    точнее так
    B int 'text()'
  • Miau (26.06.15 13:49) [5]
    >> должна будешь

    Не все, задающие глупые вопросы, являются девушками :)
 
Конференция "Базы" » MS SQL 2008 и XML [MSSQL]
Есть новые Нет новых   [118609   +48][b:0][p:0.001]