Я пытаюсь выяснить, как я могу загрузить свою переменную таблицы с данными из XML с помощью динамического xquery? Я получаю результирующий набор узлов из запроса и определяю тип значения этих узлов. Похоже, что это определение значений узлов, которые он взорвает.T-SQL Dynamic xquery
Вот пример скрипта, который работает, но не является динамическим.
Сценарий:
DECLARE @XML XML = '<root>
<data>
<list id="organization" label="Organization">
<options>
<item value="1" label="Organization1" selected="false" />
<item value="2" label="Organization2" selected="false" />
<item value="3" label="Organization3" selected="false" />
<item value="4" label="Organization4" selected="true" />
<item value="5" label="Organization5" selected="true" />
</options>
</list>
</data>
</root>';
DECLARE @Orgs TABLE (ID INT);
Insert Into @Orgs(ID) Select OrgNameIdNodes.ID.value('@value','int') from @xml.nodes('//*[@id="organization"]//item[@selected="true"]') as OrgNameIdNodes(ID);
Select *
from @orgs
То, что я хотел бы быть в состоянии сделать, это передать в параметрах как значение и секций @ xml.nodes, так что я бы что-то вроде:
Insert Into @Orgs(ID) Select OrgNameIdNodes.ID.value(@Value) from @xml.nodes(@Nodes) as OrgNameIdNodes(ID);
Это возможно?
Прекрасное спасибо Гаретт – scarpacci