выберите XML из одной таблицы с обновленными данными (значениями) из другой таблицы в SQL Server - PullRequest
1 голос
/ 03 апреля 2012

Я хочу сгенерировать XML из существующего xml, но значения должны исходить из какой-то другой таблицы. Например, у меня есть следующий XML в таблице:

<LABEL COLOR=RED> Account #: </LABEL>
<VALUE> ACCT_NUM </VALUE>
<LABEL COLOR=RED> Emp. Name: </LABEL>
<VALUE> Emp_Name </VALUE>

Таблица данных выглядит так:

EmployeeAccount

ACCT_NUM   Emp_Name
1234       Kash

Теперь он должен сгенерировать xml в следующем формате

<LABEL COLOR=RED> Account #: </LABEL>
<VALUE> 1234 </VALUE>
<LABEL COLOR=RED> Emp. Name: </LABEL>
<VALUE> Kash </VALUE>

Я не могу найти способ сделать это после двух дней поиска в Google.

Я использую SQL Server 2008.

любая помощь ...

1 Ответ

2 голосов
/ 05 апреля 2012

Я сделал это, используя ...

`DECLARE @t TABLE (id INT, data XML)
DECLARE @t2 TABLE (id INT, value varchar(50))

INSERT INTO @t (id, data)
SELECT 1,
'
<data>
  <label>1</label>
  <value>test</value>
</data>
'

INSERT INTO @t2 (id, value)
SELECT 1, 'Kash' union all
SELECT 2, 'Moeen'

--Update value of an element in xml from other table
UPDATE t1
SET data.modify
(
'
replace value of (//value/text())[1] with sql:column("value")
'
)
FROM @t t1
INNER JOIN @t2 t2 on t1.id = t2.id

SELECT data FROM @t
`
...