从一个表中选择xml,其中包含sql server中另一个表的更新数据(值)

时间:2012-04-03 08:36:22

标签: sql-server xml sql-server-2008 xquery

我想从现有的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。

任何帮助......

1 个答案:

答案 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
`