如何从SQL中的XML变量中删除包含多个属性的节点

如何从SQL中的XML变量中删除包含多个属性的节点,sql,sql-server,xml,xquery,Sql,Sql Server,Xml,Xquery,我将一些XML传递到SQL存储过程中,如下所示: <root> <category> <property id="blah" otherID="blahblah" year="2015"> <property id="blah" otherID="notBlahBlah" year="2015"> </category> </root> 我想使用基于多个节点属性的SQL从中删

我将一些XML传递到SQL存储过程中,如下所示:

<root>
    <category>
        <property id="blah" otherID="blahblah" year="2015">
        <property id="blah" otherID="notBlahBlah" year="2015">
    </category>
</root>
我想使用基于多个节点属性的SQL从中删除属性节点。例如,假设我想删除一个id=blah和otherID=blahblah的属性。我怎么能这样做?多谢各位

这是我在阅读了一些XQUERY文档之后,根据我对如何实现这一点的最佳猜测而编写的代码,但它工作不正常:

DECLARE @XML AS XML
SET @XML = '<root>
               <category>
                   <property id="blah" otherID="blahblah" year="2015">
                   <property id="blah" otherID="notBlahBlah" year="2015">
               </category>
            </root>'

UPDATE @XML.nodes('/root/category/property') 
SET data.modify('delete /root/category/property[id="blah", otherID="blahblah"]')    

请提供样本结果和您迄今为止的尝试。XML支持是高度特定于供应商的,所以请添加一个标记来指定您是使用mysql、postgresql、sql server、oracle还是db2,还是完全使用其他东西。
DECLARE @XML AS XML

SET @XML = '
<root>
               <category>
                   <property id="blah" otherID="blahblah" year="2015"/>
                   <property id="blah" otherID="notblahblah" year="2015"/>
               </category>
            </root>'

SET @XML.modify('delete /root/category/property[@id="blah" and @otherID="blahblah"]')

SELECT @XML