SQL Server将属性插入xml的顶级节点

时间:2015-02-22 16:16:52

标签: sql-server xml insert attributes root

我想将属性插入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。感谢。

1 个答案:

答案 0 :(得分:1)

使用(/*)[1]找到根节点:

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

SQL Fiddle Demo here