【问题标题】:SQL Server insert Attribute to top node of xmlSQL Server将属性插入xml的顶部节点
【发布时间】:2015-02-22 16:16:52
【问题描述】:

我想在 XML 数据类型的根节点中插入一个属性。如果我知道根节点的名称是 Quote,那么我可以这样插入:

    DECLARE @myDoc xml;     
DECLARE @id int;
SET @id = 12345; 

SET @myDoc = '<Quote>       
    <Close>
        123
    </Close>    
</Quote>'  ;  
SET @myDoc.modify('           
insert attribute ID {sql:variable("@id") }           
into   (/Quote)[1] ');  

SELECT @myDoc; 

如果我不知道根节点名称怎么办?无论根名称如何,我都想向根节点插入一个属性。我正在使用 SQL Server 2008r2。谢谢。

【问题讨论】:

    标签: sql-server xml insert attributes root


    【解决方案1】:

    使用(/*)[1]定位根节点:

    SET @myDoc = '<Quote>       
        <Close>
            123
        </Close>    
    </Quote>'  ;  
    SET @myDoc.modify('           
    insert attribute ID {sql:variable("@id") }           
    into (/*)[1] ');  
    

    SQL Fiddle Demo here

    【讨论】:

      猜你喜欢
      • 2021-08-03
      • 1970-01-01
      • 2020-12-13
      • 1970-01-01
      • 2019-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-30
      相关资源
      最近更新 更多