我想从现有的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>
经过两天的谷歌搜索后,我找不到任何办法。
我正在使用SQL Server 2008。
任何帮助......
答案 0 :(得分:2)
我用...做了这个...
`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
`