========插入操作=========

====插入单个属性=====

--为第一个book节点插入属性name值为"直接插入"

set @data.modify('insert (attribute name {"直接插入"})into (/bookstore/book)[1]')

/*output:



Everyday Italian

Giada De Laurentiis

2005

30.00



*/

======插入多个属性=======

--为第一个book节点插入属性Id值为"多值插入",name值为"多值插入"

set @data.modify('insert (attribute Id {"多值插入"},attribute name {"多值插入"})

into (/bookstore/book)[1]')

/*output:



Everyday Italian

Giada De Laurentiis

2005

30.00



*/

======利用变量插入=========

--为第一个book节点插入属性var值为"变量插入"

declare @var nvarchar(10)

set @var='变量插入';

set @data.modify('insert (attribute var {sql:variable("@var")})into

(/bookstore/book)[1]')

/*output:



Everyday Italian

Giada De Laurentiis

2005

30.00



*/

复制代码

========修改操作=========

======一般修改=======

--将category=" CHILDREN "的第一个book节点的category属性值改为"CHILD"

set @data.modify('replace value of (bookstore/book[@category="CHILDREN"]/@category)[1]

with "CHILD"')

/*output:



Harry Potter

J K. Rowling

2005

29.99

*/

=======根据条件修改========

--将category=" WEB"的第二个book节点的category属性值改为"条件替换1"

--(如果第四个book节点的author数量大于1),反之改为“条件替换2”

set @data.modify('replace value of (/bookstore/book[@category="WEB"]/@category)[2]with

(if(count(/bookstore/book[4]/author)>1) then "条件替换1" else "条件替换2")' )

/*output:



Learning XML

Erik T. Ray

2003

39.95

*/

=======根据属性名称修改========

--根据属性名称“category”来更新属性值

DECLARE @attributename VARCHAR(20)

DECLARE @title VARCHAR(20)

SELECT @attributename = 'category'--需要定位的属性名称

SELECT @title = 'new category' --属性需要更新的新值

SET @data.modify('

replace value of

(/bookstore/book/@*[local-name()=sql:variable("@attributename")])[1]

with sql:variable("@title")')

/*output:



Everyday Italian

Giada De Laurentiis

2005

30.00



*/

复制代码