• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    sqlserver2005 xml字段的读写操作
    1.创建xml字段
    在表xmlTest内创建一个字段,命名_x,设置数据类型为xml。
    2.写入xml
    insert into xmlTest (_x) values('
    root>
    item attr1="a1" attr2="a2">item11/item>
    item attr1="a1" attr2="a2">item12/item>
    /root>
    ')
    go
    如此再插入一条记录:
    insert into xmlTest (_x) values('
    root>
    item attr1="b1" attr2="b2">item21/item>
    item attr1="b1" attr2="b2">item22/item>
    /root>
    ')
    3.查询数据
    3.1 查询字段所有数据
    select _x from xmlText
    结果如图:

    3.2 查询root下面的第一个item节点
    select _x.query('root/item[1]')
    from xmlTest
    结果:

    3.3 查询root下面的第一个item节点的值
    select _x.value('(root/item)[1]','varchar(50)')
    from xmlTest
    结果:

    3.3 查询root下面的第二个item节点的attr2属性值
    select _x.value('(root/item/@attr2)[2]','varchar(50)')
    from xmlTest
    结果:

    3.4 查询表中每条记录的xml字段的item节点值,全部列出来
    SELECT t2.c1.value('.','varchar(20)') as items
    from xmlTest
    cross apply _x.nodes('root/item') as t2(c1)
    结果:

    3.5 查询表中id=1记录的xml的所有item字段的attr2属性值
    SELECT t2.c1.value('@attr2','varchar(20)') as attr2
    from xmlTest
    cross apply _x.nodes('root/item') as t2(c1)
    where id='1'

    结果:

    3.6 查询id为1的所有节点中attr1属性为a1的第一个匹配节点的attr2属性值

    select _x.value('(root/item[@attr1="a1"]/@attr2)[1]','varchar(50)')
    from xmlTest where id='1'

    结果:

    3.7 多表查询

    例如:存在另外1个table:t2,其字段xmlid关联表xmlTest,而attr1关联xmlTest的_x字段中的attr1属性值。

    查询表xmlTest中id=‘1'记录中_x字段内item节点中attr1为表t2中attr1字段值时,item节点中attr2的属性值

    select xmlTest._x.value('(root/item[@attr1=sql:column("t2.attr1")]/@attr2)[1]','varchar(50)') as attr2,t2.attr1
    from xmlTest join t2 on t2.xmlid=xmlTest.id
    where xmlTest.id='1'

    4.修改数据
    4.1 修改表中id=1记录的第一个item节点值
    UPDATE xmlTest
    set _x.modify('replace value of (root/item/text())[1] with "xxxxx"')
    where id='1'

    select _x.query('root/item[1]') as item1
    from xmlTest
    结果:

    4.2 修改表中id=2记录的第二个item节点的attr2属性值
    UPDATE xmlTest
    set _x.modify('replace value of (root/item/@attr2)[2] with "2222b"')
    where id='2'

    select _x.query('root/item[2]') as item1
    from xmlTest
    结果:

    您可能感兴趣的文章:
    • SQLServer XML数据的五种基本操作
    • C#怎样才能将XML文件导入SQL Server
    • SQLServer XML查询快速入门(18句话)
    • SqlServer参数化查询之where in和like实现之xml和DataTable传参介绍
    • Sqlserver 2005使用XML一次更新多条记录的方法
    • 在SQL Server中将数据导出为XML和Json的方法
    • SQLServer XML查询18句话入门教程
    • SQL Server解析XML数据的方法详解
    上一篇:SQLServer 2005系统配置要求官方说明
    下一篇:SQLServer Job运行成功或失败时发送电子邮件通知的图文教程
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    sqlserver2005 xml字段的读写操作 sqlserver2005,xml,字段,的,读写,