下午好,
我想使用TSQL变量删除XML属性。这是一个最小的工作示例(TSQL代码):
<recipe>
<parameters>
<parameter name="a">ValueA</parameter>
<parameter name="b">ValueB</parameter>
<parameter name="c">ValueC</parameter>
</parameters>
</recipe>
这给出了所需的输出:所有属性&#34; desc&#34;已删除:
DECLARE @attr NVARCHAR(MAX) = N'desc';
但是,我想定义一个TSQL变量
name,v1,v2,v3,v4,v5
as,"10,12,15",21,"12,11,10,12",5,7
bs,"11,15,16",24,"19,15,18,23",9,3
如何将此传递给XQuery修改操作?我可以在XML DML中使用 sql:variable(&#34; @ attr&#34;),但是如何使用它来处理属性?
感谢您的帮助!
答案 0 :(得分:4)
指定属性时可以使用通配符,然后检查谓词中属性的名称。
SET @xml.[modify](
'delete(/recipe/parameters/parameter/@*[local-name() = sql:variable("@attr")])');