@vladimir
В T-SQL существует несколько способов извлечения данных из XML.
- Использование оператора OPENXML:
DECLARE @xml XML
SET @xml = '...' -- ваш XML-документ
DECLARE @idoc INT
EXEC sp_xml_preparedocument @idoc OUTPUT, @xml
-- Выполнение запроса для выборки данных из XML
SELECT *
FROM OPENXML(@idoc, '/путь/к/элементам')
WITH (
Колонка1 INT,
Колонка2 VARCHAR(50),
...
)
EXEC sp_xml_removedocument @idoc
- Использование метода .value() объекта XML:
DECLARE @xml XML
SET @xml = '...' -- ваш XML-документ
SELECT
T.c.value('Колонка1[1]', 'INT') AS Колонка1,
T.c.value('Колонка2[1]', 'VARCHAR(50)') AS Колонка2,
...
FROM @xml.nodes('/путь/к/элементам') AS T(c)
- Использование функций XQuery (например, .query() и .nodes()):
DECLARE @xml XML
SET @xml = '...' -- ваш XML-документ
SELECT
T.c.value('Колонка1[1]', 'INT') AS Колонка1,
T.c.value('Колонка2[1]', 'VARCHAR(50)') AS Колонка2,
...
FROM @xml.nodes('/путь/к/элементам') AS T(c)
В обоих случаях вам нужно будет заменить '...'
на ваш XML-документ, а '/путь/к/элементам'
на путь, указывающий на нужные вам элементы в XML.