В настоящее время у меня есть этот код, который хранит XML в столбце XML-типа, называемом данными, в таблице под названием Storage.
CREATE TABLE Storage
(
ID INT IDENTITY(1,1) PRIMARY KEY,
data XML NOT NULL
)
GO
INSERT INTO Storage(data)
VALUES('<footballteams>
<team manager="Benitez">
<name>Liverpool</name>
<ground>Anfield</ground>
</team>
<team manager="Mourinho">
<name>Chelsea</name>
<ground>Stamford Bridge</ground>
</team>
<team manager="Wenger">
<name>Arsenal</name>
<ground>Highbury</ground>
</team>
</footballteams>');
Я хотел бы создать представление Football View, которое измельчает данные и отображает их в форме: FootballView(TeamName,Manager,Ground).
Я и раньше разбивал полные документы с помощью метода .nodes() на столбцы таблицы, но при создании представления это кажется более сложным (у меня есть причины использовать представления). Проблема в том, что ранее я просто вызывал .nodes для переменной @input, которая была DECLARE'd как xml = 'xmlcontent', но с представлениями это невозможно сделать, и я хочу проанализировать XML, содержащийся в столбце таблицы Storage.
Есть идеи? Заранее спасибо.
РЕДАКТИРОВАТЬ:
Раньше, если бы я разбивал данные на таблицы, я использовал бы следующий код:
SELECT
TeamName = Foot.value('(name)[1]', 'varchar(100)'),
Manager = Foot.value('(@manager)', 'varchar(100)'),
Ground = Foot.value('(ground)[1]', 'varchar(100)')
FROM
@input.nodes('/footballteams/team') AS Tbl(Foot)
РЕДАКТИРОВАТЬ2: Это ожидаемый результат.