1

SQL Server の列に次の xml フラグメントがあります。

<ul>
   <li><a id="cat" href="cat.html">Cat</a></li>
   <li><a id="dog" href="dog.html">Dog</a></li>

<li>のタグが付いているタグ<a>を削除したいid="cat"

    DECLARE @id varchar(40) =  'cat'

    UPDATE  dbo.Pref
    SET     xmlPref.modify('delete /ul/li/a[@id=sql:variable("@id")]')
    WHERE   pref    = 1

離れているとうまくいきません<li>

4

2 に答える 2

2

式のパスにある「a」要素を削除し、条件に追加します

DECLARE @id varchar(40) =  'cat'

UPDATE dbo.Pref
SET xmlPref.modify('delete //ul/li[a/@id=sql:variable("@id")]')
WHERE pref = 1

SQLFiddle のデモを見る

于 2013-06-17T07:48:28.860 に答える