将数据添加到SQL Server中的XML数据类型

时间:2015-01-22 15:30:57

标签: sql sql-server xml

我有一个包含xml数据类型的表,其作用类似于审计日志。

CREATE TABLE T (i int, log xml);

日志结构类似于:

<auditLog>
<entry action="Created" description="New item created" value="banana" />
<entry action="Deleted" description="Deleted item" value="apple" />
</auditLog>

我试图弄清楚是否/如何向此xml文件添加另一个条目。我发现很多函数可以将节点添加到当前条目,但不是如何创建新条目。我认为必须有一种简单的方法来做到这一点,但我似乎无法找到它。

任何指示都会非常受欢迎。

1 个答案:

答案 0 :(得分:2)

您可能会对XML节点的名称为entry这一事实感到困惑。您正在做的是将新节点插入XML数据。你可以用这个:

UPDATE T
    SET [log].modify('
    insert <entry action="Added" description="New entry added" value="orange" />
    as last
    into (/auditLog)[1]')
    WHERE i = 1

更多文档和示例:MSDN