• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > SQL Server中的XML数据进行insert、update、delete操作实现代码

SQL Server中的XML数据进行insert、update、delete操作实现代码

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了XML,insert,update,delete等相关知识,希望本文的分享对您有所帮助

SQL Server 2005/2008增加了对XML数据的支持,同时也新增了几种操作XML的方法,本文主要以SQL Server 2008为例介绍如何对XML数据进行insert、update、delete

SQL Server中新增加了XML.Modify()方法,分别为xml.modify(insert),xml.modify(delete),xml.modify(replace)对应XML的插入,删除和修改操作。
本文以下面XML为例,对三种DML进行说明:
代码如下:
declare @XMLVar XML;
SET @XMLVar= '



Windows Step By Step
Bill Zack
49.99


Developing ADO .NET
Andrew Brust
39.93


Windows Cluster Server
Stephen Forte
59.99




1.XML.Modify(Insert)语句介绍


A.利用as first,at last,before,after四个参数将元素插入指定的位置
代码如下:
set @XMLVar.modify(
'insert as first into (/catalog[1]/book[1])')


set @XMLVar.modify(
'insert as last into (/catalog[1]/book[1])')


set @XMLVar.modify(
'insert before (/catalog[1]/book[1]/author[1])')

set @XMLVar.modify(
'insert after (/catalog[1]/book[1]/author[1])')
SELECT @XMLVar.query('/catalog[1]/book[1]');

结果集为:
代码如下:
1:
2:
3: Windows Step By Step
4:
5: Bill Zack
6:
7: 49.99
8:
9:




B.将多个元素插入文档中
代码如下:
--方法一:利用变量进行插入
DECLARE @newFeatures xml;
SET @newFeatures = N'; one element second element'
SET @XMLVar.modify(' )
insert sql:variable("@newFeatures")
into (/catalog[1]/book[1])'

--方法二:直接插入
set @XMLVar.modify(')
insert (one element,second element)
into (/catalog[1]/book[1]/author[1])'
SELECT @XMLVar.query('/catalog[1]/book[1]');

结果集为:
代码如下:
1:
2: Windows Step By Step
3: Bill Zack
4: one element
5: second element
6:
7: 49.99
8: one element
9: second element
10:



C.将属性插入文档中
代码如下:
--使用变量插入
declare @var nvarchar(10) = '变量插入'
set @XMLVar.modify(
'insert (attribute var {sql:variable("@var")}))
into (/catalog[1]/book[1])'


--直接插入
set @XMLVar.modify(
'insert (attribute name {"直接插入"}))
into (/catalog[1]/book[1]/title[1])'


--多值插入
set @XMLVar.modify(
'insert (attribute Id {"多值插入1"},attribute name {"多值插入2"}) )
into (/catalog[1]/book[1]/author[1])'
SELECT @XMLVar.query('/catalog[1]/book[1]');

结果集为:
代码如下:
1:
2: Windows Step By Step
3: Bill Zack
4: 49.99
5:




D.插入文本节点
代码如下:
set @XMLVar.modify(
'insert text{"at first"} as first)
into (/catalog[1]/book[1])'
SELECT @XMLVar.query('/catalog[1]/book[1]');

结果集为:
代码如下:
1:
2: at first
3: Windows Step By Step
4: Bill Zack
5: 49.99
6:


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



E.插入注释节点
代码如下:
set @XMLVar.modify(
N'insert
before (/catalog[1]/book[1]/title[1])' )
SELECT @XMLVar.query('/catalog[1]/book[1]');

结果集为:
1:
2:
3: Windows Step By Step
4: Bill Zack
5: 49.99
6:

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



F.插入处理指令
代码如下:
set @XMLVar.modify(
'insert
before (/catalog[1]/book[1]/title[1])' )
SELECT @XMLVar.query('/catalog[1]/book[1]');

结果集为:
1:
2:
3: Windows Step By Step
4: Bill Zack
5: 49.99
6:

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



G.根据 if 条件语句进行插入
代码如下:
set @XMLVar.modify(
'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:
2: Windows Step By Step
3: Bill Zack
4: 49.99this is a 2 step
5:




2.XML.Modify(delete)语句介绍
代码如下:
--删除属性
set @XMLVar.modify('delete /catalog[1]/book[1]/@category')


--删除节点
set @XMLVar.modify('delete /catalog[1]/book[1]/title[1]')


--删除内容
set @XMLVar.modify('delete /catalog[1]/book[1]/author[1]/text()')


--全部删除
set @XMLVar.modify('delete /catalog[1]/book[2]')

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

结果集为:
代码如下:
1:
2:
3:
4: 49.99
5:

6:
7: Windows Cluster Server
8: Stephen Forte
9: 59.99
10:

11:



3.XML.Modify(replace)语句介绍
代码如下:
--替换属性
set @XMLVar.modify(N'replace value of(/catalog[1]/book[1]/@category)
with ("替换属性")' )
--替换内容
set @XMLVar.modify(N'replace value of(/catalog[1]/book[1]/author[1]/text()[1])
with("替换内容")' )
--条件替换
set @XMLVar.modify(N'replace value of (/catalog[1]/book[2]/@category)
with(
if(count(/catalog[1]/book)>4) then
"条件替换1"
else
"条件替换2")' )

SELECT @XMLVar.query('/catalog[1]');
[code]
结果集为:
[code]
1:
2:
3: Windows Step By Step
4: 替换内容
5: 49.99
6:

7:
8: Developing ADO .NET
9: Andrew Brust
10: 39.93
11:

12:
13: Windows Cluster Server
14: Stephen Forte
15: 59.99
16:

17:
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 探讨SQL利用INFORMATION_SCHEMA系统视图如何获取表的主外键信息
  • 解析优化MySQL插入方法的五个妙招
  • 解析MYSQL显示表信息的方法
  • MySQL分布式集群之MyCAT的配置文件schema.xml详解
  • MySQL分布式集群之MyCAT配置文件rule.xml的详细分析
  • SQL Server2005打开数据表中的XML内容时报错的解决办法
  • SQL Server中的XML数据进行insert、update、delete操作实现代码
  • SqlServer参数化查询之where in和like实现之xml和DataTable传参
  • 关于SQLServer2005的学习笔记 XML的处理
  • SQLServer2005 XML数据操作代码

相关文章

  • 2017-05-11在MySQL中删除表的操作教程
  • 2017-05-11MySQL 数据库常用命令 简单超级实用版
  • 2018-12-05把SQL数据库部署到远程数据库服务器中
  • 2017-05-11MySQL下将一个表的数据插入到另外一个表的实现语句
  • 2017-05-11使用mysqld_multi实现单系统中配置多个MySQL服务器实例
  • 2018-12-05常见MySQL问题及解决方案
  • 2018-12-05asp.net 使用SqlBulkCopy极速插入数据到 SQL Server
  • 2018-12-05Windows mysql 双向同步设置方法 详细篇
  • 2018-12-05sql 多条件组合查询,并根据指定类别找出所有最小子类别的SQL语
  • 2018-12-05 【ASP.NET Web API教程】1.1 第一个ASP.NET Web API

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • mysql字段类型选择方法
    • mysql事务处理机制的使用技巧步骤
    • 高性能MySQL读书笔记 找出谁持有锁
    • mysql视图实例详解
    • MSSQL 游标使用 心得
    • MySQL索引的详解及实例教程
    • MySQL 数据类型 大全
    • 详细了解Mysql的基础操作
    • php 数据库开发你要知道的三点
    • MySQL性能优化之max_connections配置参数浅析

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有