我无法提出可扩展的解决方案。如何在 SQL Server 2008 中附加复杂的 XML 元素?
例如,我有以下简单的表:
CREATE TABLE my_audit (
[id] [int] IDENTITY(1,1) NOT NULL,
[xml_file] [xml] NULL,
);
假设我插入了以下 XML 文件:
<Input>
<Element1 />
</Input>
我可以通过运行以下 SQL 语句来附加第二个元素:
UPDATE my_audit
SET xml_file.modify('insert element Element2 {""} as last into (/Input)[1]')
WHERE id = 1;
这有效,并导致:
<Input>
<Element1 />
<Element2 />
</Input>
不幸的是,这对于更复杂的元素类型是不可扩展的。考虑附加这个 XML:
<Input>
<Element3>
<subElement1></subElement1>
</Element3>
</Input>
现在我该怎么办?
此类调用是由使用 ADO 连接到数据库的 .net 应用程序进行的(不,这不能改变)。如果我编写自己的映射库,事情很快就会失控。这不是一个可扩展的解决方案。
是否有一个 TSQL 命令我可以传递一个 VARCHAR 变量“<Element3><subElement1></subElement1></Element3>”来追加?也许其他更好的方法?