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 字段操作相关推荐

  1. mysql操作xml字段_SQL XML 字段操作

    DECLARE @myDoc xml SET @myDoc = ' ' --SELECT @myDoc -- 插入item的第1个子节点,此时不需要指定as first或as last SET @my ...

  2. SQL对Xml字段的操作

    转:http://www.cnblogs.com/youring2/archive/2008/11/27/1342288.html T-Sql操作Xml数据 一.前言 SQL Server 2005 ...

  3. SQL Server对Xml字段的操作

    T-Sql操作Xml数据 一.前言 SQL Server 2005 引入了一种称为 XML 的本机数据类型.用户可以创建这样的表,它在关系列之外还有一个或多个 XML 类型的列:此外,还允许带有变量和 ...

  4. xml常用操作(js、sql、vb)

    我们经常会用到xml操作,如下介绍了js.sql.vb等对xml的操作. JS创建xml对象 //创建对象 function getDataXML() {var objTds = $("TE ...

  5. 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 ...

  6. sql server中对xml进行操作

    一.前言 SQL Server 2005 引入了一种称为 XML 的本机数据类型.用户可以创建这样的表,它在关系列之外还有一个或多个 XML 类型的列:此外,还允许带有变量和参数.为了更好地支持 XM ...

  7. MySQL数据库之SQL的各种操作/Html/Java和XML的关系

    MySQL数据库之SQL的各种操作/Html/Java和XML的关系 今天内容:(1)数据库的概述(2)MySQL数据库的环境搭建(3)常用的数据类型(4)DDL数据定义语句(5)DML数据操纵语句1 ...

  8. 转: 利用SQL SERVER2005的XML字段类型实现类似商品扩展属性

    今天自己翻了两页自己的BLOG,发现真是越来越懒了,已经好长时间没有写技术相关的日志了,记得刚开始写BLOG的时候还经常写写自己的技术积累的,现在除了发布ZJ-BLOG的程序更新信息外,好像全成了自己 ...

  9. SQL的视图操作删除一个字段(列)的方法

    SQL的视图操作 1.创建视图 create view create view 视图名 as select 字段名from 表名where 限制条件 2.修改视图 alter view 可以用来删除列 ...

最新文章

  1. 十二天深入理解计算机系统(一)
  2. 什么是XSS攻击XSS攻击应用场景
  3. 【渝粤题库】国家开放大学2021春2175市场营销学题目
  4. Linux设备树翻译计划
  5. 测试用例设计方法_黑盒测试——测试用例设计方法
  6. Multi-thread--C++11中std::mutex的使用
  7. 函数指针数组指针+结构体数组
  8. Linux bash符号及含义,Linux下用bash命令执行名称中带有(符号的目录注意事项
  9. python使用glob模块匹配文件及路径
  10. 实现jdbc连接mysql_Java JDBC连接MYSQL数据库教程(实现)
  11. MIUI10迎来最后一波开发版推送 用户体验再升级
  12. sparkstreaming监听hdfs目录如何终止_四十六、Spark Streaming简介及入门
  13. 我们正在步入谷歌数据时代
  14. 宏杉科技助力西安交大二附院:突破存储旧瓶颈、实现业务新成长
  15. 读取日志时发生乱码的解决方法
  16. 2018年第九届蓝桥杯真题Java B组
  17. 手机测试光纤网速的软件,如何测试光纤网速?如何测试网速多少兆
  18. 服务器修改硬盘顺序,服务器硬盘阵列硬盘顺序
  19. 三年之期已至,加多宝如何续写上市新故事
  20. 热烈庆祝《Java多线程》上线啦!

热门文章

  1. 如何为 Flask Web 应用配置 Nginx
  2. MongoDB的各个版本下载地址汇总
  3. Lumen配置文件按需加载出现的坑
  4. ubuntu通过apt-get方式搭建lnmp环境以及php扩展安装
  5. tortosiegit github
  6. [转]ASP.NET中常用输出JS脚本的类
  7. “变态级”系统管理员笔试题,你能拿下吗?
  8. 小谈EntityFramwork Code First实体更新后的数据库处理
  9. Android Q:新系统名称和新特性整理
  10. Hotpatch潜在的安全风险