У меня есть следующий пример xml в столбце типа данных xml:
<diagnostics CurrentIterationNumber="79" TotalItemsProcessed="37847"
ItemsProcessedLastIteration="75" ItemsProcessedPerIteration="479" />
Я хочу иметь сохраненный процесс, где я могу передать имя атрибута для запроса. Затем я хочу сохранить его значение в переменной для выполнения другого набора вычислений.
Я прочитал, что функция .value ожидает строковый литерал, и многие ресурсы в Интернете советуют использовать для этого функцию sql: variable (). Однако у меня остался код, возвращающий фактическое содержимое переменной.
Попытка что-то вроде следующего:
declare @property as varchar(50);
set @property = '@CurrentIterationNumber';
declare @x as xml;
set @x = (select PropertyValues from dbo.tblDiagnosticsSnapshot);
SELECT
t.c.value('sql:variable("@property")', 'varchar(50)')
FROM
@x.nodes('/diagnostics') t(c);