2016-08-15 192 views
0

我正在尋找一種方法在特定位置插入特定的XML節點。下面是例子:使用SQL在特定位置插入特定的XML節點

<Car> 
    <Brand>Toyota</Brand> 
    <Color>Red</Color> 
    <Price>10000</Color> 
</Car> 

說,如果我是想插入<Color><Price>之間節點的節點<Year>2012</Year>,我該怎麼辦?

請注意,替換整個XML文檔不是我當前場景中的選項。由於

+0

參見:http://stackoverflow.com/questions/3004670/ insert-xml-node-before-specific-node-using-c-sharp – NoChance

+0

@NoChance嗨,正在尋找可以直接通過T-SQL來代替它。任何想法?謝謝 – codeandfootball

+0

對不起,不知道。 – NoChance

回答

3

您可以使用XQuery語句insert ... after ...Color正確插入Year元素:

declare @xml XML = '<Car> 
    <Brand>Toyota</Brand> 
    <Color>Red</Color> 
    <Price>10000</Price> 
</Car>' 

SET @xml.modify(' 
    insert <Year>2012</Year> 
    after (//Color)[1] 
') 

SELECT @xml 

輸出:

<Car> 
    <Brand>Toyota</Brand> 
    <Color>Red</Color> 
    <Year>2012</Year> 
    <Price>10000</Price> 
</Car> 
+0

很酷。有用。謝謝! – codeandfootball