从数据库中读取值并更新现有的 xml

索马谢卡尔

使用 SQL Server 2008 和表有一些这样的值:

EMPN ENAME      JOB       HIREDATE
---- ---------- --------- -----------
7341 SMITH      CLERK     17-DEC-1980
7482 ALLEN      SALESMAN  20-FEB-1981

我的 XML 在共享文件夹中

<employees>
    <employee>
        <empno>7369</empno>
        <ename>SMITH</ename>
        <job>CLERK</job>
        <hiredate>17-DEC-1980</hiredate>
    </employee>    
    <employee>
        <empno>7499</empno>
        <ename>ALLEN</ename>
        <job>SALESMAN</job>
        <hiredate>20-FEB-1981</hiredate>
    </employee>
</employees>

现在需要根据数据库值 (EMPN) 更改我现有的 XML

我们怎么做?

修吾

你的问题不是很清楚...

一开始的一些提示:

您显示的表数据和您提供的 XML 不包含相同的 ID,因此我假设您需要将新员工添加为新的子节点:

DECLARE @existingXML XML=
'<employees>
  <employee>
    <empno>7369</empno>
    <ename>SMITH</ename>
    <job>CLERK</job>
    <hiredate>17-DEC-1980</hiredate>
  </employee>
  <employee>
    <empno>7499</empno>
    <ename>ALLEN</ename>
    <job>SALESMAN</job>
    <hiredate>20-FEB-1981</hiredate>
  </employee>
</employees>';

SET LANGUAGE ENGLISH;
DECLARE @tmpTable TABLE(MPN INT,ENAME VARCHAR(100),JOB VARCHAR(100),HIREDATE DATE);
INSERT INTO @tmpTable VALUES
 (7341,'SMITH','CLERK','17-DEC-1980')
,(7482,'ALLEN','SALESMAN','20-FEB-1981');

DECLARE @NewXml XML=
(
SELECT
    (
    SELECT e.MPN AS [empno]
          ,e.ENAME AS [ename]
          ,e.JOB AS [job]
          ,e.HIREDATE AS [hiredate]
    FROM @tmpTable AS e
    FOR XML PATH('employee'),TYPE
    ) AS NewXML
);
SET @existingXML.modify(N'insert sql:variable("@NewXML") as last into (/employees)[1]');

SELECT @existingXML;

如果您需要同步表和 XML 的数据,我会将整个内容切碎到派生表,MERGE对行数据使用某种方法并从头开始重建 XML。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何更新 SQL Server 表中现有的 XML 字段数据?

来自分类Dev

从 XML 文件中获取值以插入数据库

来自分类Dev

Laravel 5更新数据库中现有的

来自分类Dev

从现有的非XML文件读取XML

来自分类Dev

如何从SQL Server 2008中的现有数据库创建XML架构

来自分类Dev

PHP读取XML并在数据库中写入

来自分类Dev

Java-更新xml文件中的正确数据库

来自分类Dev

如何从现有的写入数据库中生成CQRS中的读取数据?

来自分类Dev

使用数据集追加到现有的xml文件中

来自分类Dev

更新关系数据库中的数据,而不影响现有的关系

来自分类Dev

返回XML数据库中的所有文档

来自分类Dev

返回XML数据库中的所有文档

来自分类Dev

在现有的xml文件python中添加元素

来自分类Dev

在现有的xml中添加重复的子标记

来自分类Dev

将XML文件读取到已经存在的数据库表中

来自分类Dev

从数据库中读取Autofac xml配置并更改其运行时

来自分类Dev

Liferay Portlet:如何从现有数据库生成service.xml(服务生成器)

来自分类Dev

XML到数据库

来自分类Dev

Xml到数据库

来自分类Dev

从XML节点读取值?

来自分类Dev

从XML节点读取值?

来自分类Dev

用于从XML插入/更新数据库的存储过程

来自分类Dev

使用 perl 脚本更新 xml 数据库文件

来自分类Dev

如何在 phpmyadmin 数据库中执行 XML 数据

来自分类Dev

更新数据库中的现有值

来自分类Dev

由于更改而更新数据库中的现有记录?

来自分类Dev

更新Windows Phone中的现有xml文件

来自分类Dev

如何从现有的MongoDB数据库获取数据?

来自分类Dev

从数据库获取Xml字段,然后从特定元素获取值