300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > SQL Server中的XML数据进行insert update delete

SQL Server中的XML数据进行insert update delete

时间:2019-03-26 17:00:05

相关推荐

SQL Server中的XML数据进行insert update delete

今天小编给大家介绍下SQL Server中的XML数据进行insert、update、delete,平时喜欢SQL Server中的XML数据进行insert、update、delete的朋友赶紧收藏起来吧!记得点赞哦~

SQLServer中新增加了()方法,分别为(),(),()对应的插入,删除和修改操作。

本文以下面XML为例,对三种DML进行说明:

declare

@XMLVar xml =

catalog

book category="ITPro"

titleWindows Step By Step/title

authorBill Zack/author

price49.99/price

/book

book category="Developer"

titleDeveloping ADO .NET/title

authorAndrew Brust/author

price39.93/price

/book

book category="ITPro"

titleWindows Cluster Server/title

authorStephen Forte/author

price59.99/price

/book

/catalog

()语句介绍

A.利用as first,at last,before,after四个参数将元素插入指定的位置

set

@

(

insert first name="at first" / as first into (/catalog[1]/book[1])

)

set

@

(

insert last name="at last"/ as last into (/catalog[1]/book[1])

)

set

@

(

insert before name="before"/ before (/catalog[1]/book[1]/author[1])

)

set

@

(

insert after name="after"/ after (/catalog[1]/book[1]/author[1])

)

SELECT

@XMLVar.query(/catalog[1]/book[1]

);

结果集为:

book category="ITPro"

first name="at first"

/

titleWindows Step By Step/title

before name="before"

/

authorBill Zack/author

after name="after"

/

price49.99/price

last name="at last"

/

/book

B.将多个元素插入文档中

--方法一:利用变量进行插入

DECLARE @newFeatures xml;

SET @newFeatures = N

firstone element/first

secondsecond element/second

SET @(

)

insert sql:variable("@newFeatures")

into (/catalog[1]/book[1])

--方法二:直接插入

set @(

)

insert (firstone element/first,secondsecond element/second)

into (/catalog[1]/book[1]/author[1])

SELECT@XMLVar.query(/catalog[1]/book[1]

);

结果集为:

1:

book

category

="ITPro"

2:

title

Windows Step By Step/

title

3:

author

Bill Zack

4:

first

one element/

first

5:

second

second element/

second

6:

/

author

7:

price

49.99/

price

8:

first

one element/

first

9:

second

second element/

second

10:

/

book

C.将属性插入文档中

--使用变量插入

declare @var nvarchar(10) = 变量插入

set @(

insert (attribute var {sql:variable("@var")})

)

into (/catalog[1]/book[1])

--直接插入

set @(

insert (attribute name {"直接插入"})

)

into (/catalog[1]/book[1]/title[1])

--多值插入

set @(

insert (attribute Id {"多值插入1"},attribute name {"多值插入2"})

)

into (/catalog[1]/book[1]/author[1])

SELECT @XMLVar.query(/catalog[1]/book[1]

);

结果集为:

1:

book category="ITPro"

var="变量插入"

2:

title name="直接插入"

Windows Step By Step/title

3:

author

name="多值插入2"

Bill Zack/author

4:

price49.99/price

5:

/book

D.插入文本节点

set

@

(

insert text{"at first"} as first

)

into (/catalog[1]/book[1])

SELECT

@XMLVar.query(/catalog[1]/book[1]

);

结果集为:

1:

book

category

="ITPro"

2:

at first

3:

title

Windows Step By Step/

title

4:

author

Bill Zack/

author

5:

price

49.99/

price

6:

/

book

注意:插入本文同样具体 as first,as last,before,after四种选项,可以参考A中的使用方法

E.插入注释节点

set @(

insert !--插入评论--

)

before (/catalog[1]/book[1]/title[1])

SELECT @XMLVar.query(/catalog[1]/book[1]

);

结果集为:

1:

book category="ITPro"

2:

!--插入评论--

3:

titleWindows Step By Step/title

4:

authorBill Zack/author

5:

price49.99/price

6:

/book

注意插入注释节点同样具体 as first,as last,before,after四种选项,可以参考A中的使用方法

F.插入处理指令

set @(

insert ?Program "Instructions.exe" ?

)

before (/catalog[1]/book[1]/title[1])

SELECT @XMLVar.query(/catalog[1]/book[1]

);

结果集为:

1: bookcategory="ITPro"

2: ?Program"Instructions.exe"?

3: titleWindows Step By Step/title

4: authorBill Zack/author

5: price49.99/price

6: /book

注意插入处理指令同样具体 as first,as last,before,after四种选项,可以参考A中的使用方法

G.根据 if 条件语句进行插入

set @(

insert

)

if (/catalog[1]/book[1]/title[2]) then

text{"this is a 1 step"}

else ( text{"this is a 2 step"} )

into (/catalog[1]/book[1]/price[1])

SELECT @XMLVar.query(/catalog[1]/book[1]

);

结果集为:

1: book category="ITPro"

2: titleWindows Step By Step/title

3: authorBill Zack/author

4: price49.99this isa 2 step/price

5: /book

2.XML.Modify(delete)语句介绍

--删除属性

set @(delete /catalog[1]/book[1][email protected])

--删除节点

set @(delete /catalog[1]/book[1]/title[1])

--删除内容

set @(delete /catalog[1]/book[1]/author[1]/text())

--全部删除

set @(delete /catalog[1]/book[2])

SELECT @XMLVar.query(/catalog[1]);

结果集为:

1: catalog

2: book

3: author /

4: price49.99/price

5: /book

6: book category="ITPro"

7: titleWindows Cluster Server/title

8: authorStephen Forte/author

9: price59.99/price

10: /book

11: /catalog

3.XML.Modify(replace)语句介绍

--替换属性

set @( eplace value of(/catalog[1]/book[1][email protected]))

with ("替换属性")

--替换内容

set @( eplace value of(/catalog[1]/book[1]/author[1]/text()[1]))

with("替换内容")

--条件替换

set @( eplace value of (/catalog[1]/book[2][email protected]))

with(

if(count(/catalog[1]/book)4) then

"条件替换1"

else

"条件替换2")

SELECT @XMLVar.query(/catalog[1]

);

结果集为:

1: catalog

2: bookcategory="替换属性"

3: titleWindows Step By Step/title

4: author替换内容/author

5: price49.99/price

6: /book

7: bookcategory="条件替换2"

8: title

Developing ADO .NET/title

9:

author

Andrew Brust/author

10: price39.93/price

11: /book

12: bookcategory="ITPro"

13: titleWindows Cluster Server/title

14: authorStephen Forte/author

15: price59.99/price

16: /book

17: /catalog

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。