【发布时间】:2017-02-23 09:53:39
【问题描述】:
我关于 Stack Overflow 的第一个问题 :)
我有 XML:
DECLARE @xml XML = '<root><tag1 /><tag2 /></root>';
我需要删除节点,但是节点的路径是变量“@path”。
DECLARE @path XML = '/root/tag2';
我的查询是:
SET @xml.[modify]('delete sql:variable("@path")');
但是,我得到错误: 消息 9342,第 16 层,状态 1,第 9 行 XQuery [modify()]:XML 实例仅支持作为使用 sql:column/sql:variable 的插入的直接源。
所以我的问题是:如何通过sql参数删除xml节点?
【问题讨论】:
-
XPath 不能使用变量,但可以使用各种谓词。请提供有关您的真实世界需求的更多信息...顺便提一下:有一种方法可以通过动态创建的SQL和
EXEC()... -
描述起来很复杂,只是创建了一个简化的例子。我这里有更多的要求:一个是保持相同的会话。因此,动态 sql 是最后使用的选项。谢谢你的回答。
标签: sql-server xml tsql