SQL XML 字段操作
DECLARE @myDoc xml
SET @myDoc =
'<root>
<item ID="1">
</item>
</root>'
--SELECT @myDoc
-- 插入item的第1个子节点,此时不需要指定as first或as last
SET @myDoc.modify(N'
insert <author>张洪举</author>
into (/root/item)[1]')
SELECT @myDoc
-- 插入item的第2个子节点,as first指定插入到同级子节点的前面
SET @myDoc.modify(N'
insert <title>SQL Server 2005开发宝典</title>
as first into (/root/item)[1]')
SELECT @myDoc
-- 插入第2个item节点
SET @myDoc.modify('
insert <item ID="2"></item>
into (/root)[1]')
SELECT @myDoc
-- 向第2个item中插入第1个子节点
SET @myDoc.modify('
insert <title>SQL Server 2005的新增功能</title>
as first into (/root/item)[2]')
SELECT @myDoc
GO
---------------------------------------------------二
DECLARE @myDoc xml
SET @myDoc = '<root>
<item ID="1">
</item>
</root>'
SELECT @myDoc
SET @myDoc.modify('
insert (
<title>SQL Server 2005开发宝典</title>,
<author>张洪举</author>
)
into (/root/item)[1]');
SELECT @myDoc
GO
---------------------------------------------------三
DECLARE @myDoc xml
SET @myDoc = N'<root>
<item ID="1">
<title>Ajax实战</title>
<author>张洪举</author>
</item>
<item ID="2">
<title>Ajax实战</title>
<author>张洪举</author>
</item>
</root>'
SELECT @myDoc
SET @myDoc.modify(N'
insert attribute ShipTo {"广州"}
into (/root/item[@ID=1])[1]');
SET @myDoc.modify(N'
insert attribute ShipVia {"UPS"}
into (/root/item[@ID=1])[1]');
SELECT @myDoc
-- 通过一个sql变量指定要插入属性ShipDate的值
DECLARE @ShipDate char(11)
SET @ShipDate='2006-01-23Z'
SET @myDoc.modify('
insert attribute ShipDate {sql:variable("@ShipDate") cast as xs:date ?}
into (/root/item[@ID=1])[1]') ;
SELECT @myDoc
-- 插入多个属性,属性之间使用逗号分隔,并包含在括号内
SET @myDoc.modify('
insert (
attribute PostCode {"253020" },
attribute Weight {"1.5"}
)
into (/root/item[@ID=1])[1]');
SELECT @myDoc
GO
---------------------------------------------------四
DECLARE @myDoc xml
SET @myDoc = N'<root>
<item ID="1">
<title>Ajax实战</title>
<author>张洪举</author>
</item>
<item ID="2">
<title>ASP.NET实战</title>
<author>卢桂章</author>
</item>
</root>'
SET @myDoc.modify('
insert <!-- 注释 -->
after (/root/item[@ID=2]/title)[1]');
SELECT @myDoc
GO
---------------------------------------------------五
DECLARE @myDoc xml
SET @myDoc = N'<root>
<item ID="1">
<title>Ajax实战</title>
<author>张洪举</author>
</item>
<item ID="2">
<title>ASP.NET实战</title>
<author>卢桂章</author>
</item>
</root>'
SET @myDoc.modify(N'
insert <desc><![CDATA[ <送货方式>上门<价款>未收]]></desc>
into (/root/item[@ID=2])[1] ') ;
SELECT @myDoc
GO
---------------------------------------------------六
DECLARE @myDoc xml
SET @myDoc = N'<root>
<item ID="1">
<title>Ajax实战</title>
<author>张洪举</author>
</item>
</root>'
SET @myDoc.modify(N'
insert text{"订单列表"}
as first into (/root)[1]');
SELECT @myDoc
GO
---------------------------------------------------六
use jobproject
CREATE XML SCHEMA COLLECTION MySchemas
AS
N'<?xml version = "1.0"?>
<xsd:schema targetNamespace="http://schemas.mybook.com/customerschemas"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="customer">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="unbounded" name="item">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="customername" type="xsd:string"/>
<xsd:element name="address" type="xsd:string"/>
<xsd:element name="phone" type="xsd:string"/>
<xsd:element name="contact" type="xsd:string"/>
</xsd:sequence>
<xsd:attribute name="ID" type="xsd:int"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>';
GO
-- 创建包含xml数据类型列的表
CREATE TABLE MyCustomer
(CustomerID int IDENTITY PRIMARY KEY,
CustomerItem xml(MySchemas));
GO
-- 向表中插入XML,该XML应当符合http://schemas.mybook.com/customerschemas命名空间架构的定义
INSERT INTO MyCustomer
VALUES
(N'<C:customer xmlns:C="http://schemas.mybook.com/customerschemas">
<item ID="1">
<customername>北方书城</customername>
<address>北京市海淀区知春路22号</address>
<phone>2222222</phone>
<contact>刘先生</contact>
</item>
</C:customer>');
-- 使用XML DML insert插入另一个item节点到XML中
UPDATE MyCustomer
SET CustomerItem.modify('
declare namespace CS="http://schemas.mybook.com/customerschemas";
insert (<item ID="2">
<customername>东图大厦</customername>
<address>长春市朝阳大街99号</address>
<phone>1111111</phone>
<contact>孙×××</contact>
</item>)
into (/CS:customer)[1] ')
WHERE CustomerID=1;
SELECT CustomerItem
FROM Mycustomer;
GO
---------------------------------------------------七
DECLARE @myDoc xml
SET @myDoc = '<?Instructions for=TheWC.exe ?>
<root>
<!-- 这里是注释 -->
<item ID="1" ShipTo="广州">这里是文本
<title>Ajax实战</title>
<author>张洪举</author>
</item>
<item ID="2">
<title>ASP.NET实战</title>
<author>卢桂章</author>
</item>
</root>'
SELECT @myDoc
-- 删除注释
SET @myDoc.modify('
delete /root/comment()
')
SELECT @myDoc
-- 删除所有指令
SET @myDoc.modify('
delete //processing-instruction()
')
SELECT @myDoc
-- 删除ID为1的item中的文本节点
SET @myDoc.modify('
delete /root/item[@ID=1]/text()
')
SELECT @myDoc
-- 删除一个属性
SET @myDoc.modify('
delete /root/item[@ID=1]/@ShipTo
')
SELECT @myDoc
-- 删除一个元素
SET @myDoc.modify('
delete /root/item[@ID=2]/author
')
SELECT @myDoc
-- 删除ID为2的item节点
SET @myDoc.modify('
delete /root/item[@ID=2]
')
SELECT @myDoc
GO
---------------------------------------------------八
UPDATE MyCustomer
SET CustomerItem.modify('
declare namespace CS="http://schemas.mybook.com/customerschemas";
delete /CS:customer/item[@ID=2]
');
SELECT CustomerItem FROM MyCustomer;
GO
---------------------------------------------------九
DECLARE @myDoc xml
SET @myDoc = '<root>
<item ID="1">
<title>Ajax实战</title>
<author>张洪举</author>
</item>
<item ID="2">
<title>ASP.NET实战</title>
<author>卢桂章</author>
</item>
</root>'
SELECT @myDoc
-- 更新ID为1的item中的title元素的文本
SET @myDoc.modify('
replace value of (/root/item[@ID=1]/title/text())[1]
with "Ajax实战攻略"
')
SELECT @myDoc
-- 更新属性值
SET @myDoc.modify('
replace value of (/root/item[@ID=2]/@ID)[1]
with "3"
')
SELECT @myDoc
---------------------------------------------------九
declare @xdoc xml
set @xdoc = N'<conn>
<mysql servername="192.168.1.120,3306">
<user name="root" password="" />
<user name="dba" password="" />
<user name="user" password="" />
</mysql>
<mssql servername="192.168.1.110,1433">
<user name="sa" password="" />
<user name="dba" password="" />
<user name="user" password="" />
</mssql>
<excel id="1" path="c:\database\" filename="source1.xls" />
<excel id="2" path="d:\database\" filename="source2.xls" />
<excel id="3" path="e:\database\" filename="source3.xls" />
</conn>
'
-------第一方法
select excel_path = t.c.value('@path' ,'varchar(255)')
,excel_name = t.c.value('@filename' ,'varchar(255)')
from @xdoc.nodes('/conn/excel') t (c)
where t.c.value('@id', 'int') = 1
-------第二方法
select excel_path = @xdoc.value('(/conn/excel[@id="1"]/@path)[1]', 'varchar(255)')
,excel_name = @xdoc.value('(/conn/excel[@id="1"]/@filename)[1]', 'varchar(255)')
-------第三方法
declare @excel_id int
set @excel_id = 1
select excel_path = @xdoc.value('(/conn/excel[@id=sql:variable("@excel_id")]/@path)[1]', 'varchar(255)')
,excel_name = @xdoc.value('(/conn/excel[@id=sql:variable("@excel_id")]/@filename)[1]', 'varchar(255)')
转载于:https://blog.51cto.com/cnming/458226
SQL XML 字段操作相关推荐
- mysql操作xml字段_SQL XML 字段操作
DECLARE @myDoc xml SET @myDoc = ' ' --SELECT @myDoc -- 插入item的第1个子节点,此时不需要指定as first或as last SET @my ...
- SQL对Xml字段的操作
转:http://www.cnblogs.com/youring2/archive/2008/11/27/1342288.html T-Sql操作Xml数据 一.前言 SQL Server 2005 ...
- SQL Server对Xml字段的操作
T-Sql操作Xml数据 一.前言 SQL Server 2005 引入了一种称为 XML 的本机数据类型.用户可以创建这样的表,它在关系列之外还有一个或多个 XML 类型的列:此外,还允许带有变量和 ...
- xml常用操作(js、sql、vb)
我们经常会用到xml操作,如下介绍了js.sql.vb等对xml的操作. JS创建xml对象 //创建对象 function getDataXML() {var objTds = $("TE ...
- mysql load xml_MySQL的SQL语句 - 数据操作语句(10)- LOAD XML 语句
LOAD XML 语句 1. LOAD XML 2. [LOW_PRIORITY | CONCURRENT] [LOCAL] 3. INFILE 'file_name' 4. [REPLACE | I ...
- sql server中对xml进行操作
一.前言 SQL Server 2005 引入了一种称为 XML 的本机数据类型.用户可以创建这样的表,它在关系列之外还有一个或多个 XML 类型的列:此外,还允许带有变量和参数.为了更好地支持 XM ...
- MySQL数据库之SQL的各种操作/Html/Java和XML的关系
MySQL数据库之SQL的各种操作/Html/Java和XML的关系 今天内容:(1)数据库的概述(2)MySQL数据库的环境搭建(3)常用的数据类型(4)DDL数据定义语句(5)DML数据操纵语句1 ...
- 转: 利用SQL SERVER2005的XML字段类型实现类似商品扩展属性
今天自己翻了两页自己的BLOG,发现真是越来越懒了,已经好长时间没有写技术相关的日志了,记得刚开始写BLOG的时候还经常写写自己的技术积累的,现在除了发布ZJ-BLOG的程序更新信息外,好像全成了自己 ...
- SQL的视图操作删除一个字段(列)的方法
SQL的视图操作 1.创建视图 create view create view 视图名 as select 字段名from 表名where 限制条件 2.修改视图 alter view 可以用来删除列 ...
最新文章
- 十二天深入理解计算机系统(一)
- 什么是XSS攻击XSS攻击应用场景
- 【渝粤题库】国家开放大学2021春2175市场营销学题目
- Linux设备树翻译计划
- 测试用例设计方法_黑盒测试——测试用例设计方法
- Multi-thread--C++11中std::mutex的使用
- 函数指针数组指针+结构体数组
- Linux bash符号及含义,Linux下用bash命令执行名称中带有(符号的目录注意事项
- python使用glob模块匹配文件及路径
- 实现jdbc连接mysql_Java JDBC连接MYSQL数据库教程(实现)
- MIUI10迎来最后一波开发版推送 用户体验再升级
- sparkstreaming监听hdfs目录如何终止_四十六、Spark Streaming简介及入门
- 我们正在步入谷歌数据时代
- 宏杉科技助力西安交大二附院:突破存储旧瓶颈、实现业务新成长
- 读取日志时发生乱码的解决方法
- 2018年第九届蓝桥杯真题Java B组
- 手机测试光纤网速的软件,如何测试光纤网速?如何测试网速多少兆
- 服务器修改硬盘顺序,服务器硬盘阵列硬盘顺序
- 三年之期已至,加多宝如何续写上市新故事
- 热烈庆祝《Java多线程》上线啦!