2

こんにちは、

TSQL 変数を使用して XML 属性を削除したいと考えています。これは最小限の作業例 (TSQL コード) です。

DECLARE @xml XML;
SET @xml = CONVERT(XML, N'
<recipe>
    <parameters>
        <parameter name="a" desc="A">ValueA</parameter>
        <parameter name="b" desc="B">ValueB</parameter>
        <parameter name="c" desc="C">ValueC</parameter>
    </parameters>
</recipe>
');
SET @xml.[modify]('delete (/recipe/parameters/parameter/@desc)');
SELECT  @xml;

これにより、目的の出力が得られます。すべての属性「desc」が削除されています。

<recipe>
  <parameters>
    <parameter name="a">ValueA</parameter>
    <parameter name="b">ValueB</parameter>
    <parameter name="c">ValueC</parameter>
  </parameters>
</recipe>

ただし、TSQL 変数を定義したい

DECLARE @attr NVARCHAR(MAX) = N'desc';

これを XQuery の変更操作に渡すにはどうすればよいですか? XML DML 内でsql:variable("@attr")を使用できますが、それを使用して属性を指定するにはどうすればよいですか?

助けてくれてありがとう!

4

1 に答える 1