Использовать XML в качестве входной переменной для SP - PullRequest
1 голос
/ 08 марта 2011

Я получаю параметр XML, и теперь я хочу получить от него данные, использовать эти данные и вызвать другого SP.

Сейчас я пытаюсь разделить входную переменную xml.

DECLARE @XML XML Set @XML = '<Products>
                        <product>
                            <id>3</id>
                            <name>Testar 3</name>
                        </product>
                        <product>
                            <id>6</id>
                            <name>Testar 6</name>
                        </product>
                        <product>
                            <id>15</id>
                            <name>Testar 15</name>
                        </product>
                    </Products>'

SELECT      CAST(A.B.query('./product/id/text()') AS VARCHAR(20)) as id,    CAST(A.B.query('./product/name/text()') AS VARCHAR(50)) as name  FROM @XML.nodes('/Products') as A(B)

Но это только 1 строка с двумя столбцами, которые выглядят так.

ID          Name 
3615        Testar 3Testar 6Testar 15

Но то, что я хочу, это

ID          Name
3           Testar 3
6           Testar 6
15          Testar 15

Что мне нужно изменить, чтобы достичь этого?

Спасибо Magnus

1 Ответ

4 голосов
/ 08 марта 2011
select 
  P.value('id[1]', 'int') as ID,
  P.value('name[1]', 'varchar(50)') as Name
from @XML.nodes('Products/product') as P(P)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...