SQL Server 2005的XML数据修改语言

  作为对XQuery语言的扩展,XML DML为XML数据操作提供了更大的灵活性,而不再仅仅是对XML数据进行一些查询操作。通过XML DML,用户可以像操作关系表一样对XML中的节点内容进行插入、更新和删除操作。XML DML需要通过xml数据类型的modify方法进行调用。

  1.insert

  insert用于将Expression1标识的一个或多个节点作为Expression2标识的节点的子节点或同级节点插入。语法格式如下:

insert
   Expression1 (
         {as first | as last} into | after | before
                  Expression2
        )

  Expression1和Expression2

  标识要插入的一个或多个节点。它可以是常量XML实例,也可以是XQuery表达式。该表达式可以得出节点、文本节点或一组有序的节点,但它无法解得根节点。如果该表达式得出一个值或一组值,则这些值作为单个文本节点插入,各值之间以空格分隔开。如果将多个节点指定为常量,则这些节点用括号括住,并以逗号分隔开。但无法插入异构序列(如一组元素、属性或值)。如果Expression1解得一个空序列,则不会发生插入操作,并且不会返回任何错误。

  into

  Expression1标识的节点作为Expression2标识的节点的子节点插入。如果Expression2中的节点已有一个或多个子节点,则必须使用as first或as last来指定所需的新节点添加位置。

  after

  Expression1标识的节点作为Expression2标识的节点的同级节点直接插入在其后面,after关键字不能用于插入属性。

  before

  Expression1标识的节点作为Expression2标识的节点的同级节点直接插入在其前面,before关键字不能用于插入属性。

时间: 2024-08-01 19:54:48

SQL Server 2005的XML数据修改语言的相关文章

SQL Server 2005中XML数据建模简介

关系或 XML 数据模型 如果您的数据是高度结构化的,具有已知的架构,则关系模型可能对于数据存储最为有效.Microsoft SQL Server 提供了您可能需要的必要功能和工具.另一方面,如果结构是灵活的(半结构化和非结构化)或未知的,则必须适当地考虑如何对此类数据进行建模. 如果您需要独立于平台的模型,以便确保使用结构化和语义标记的数据的可移植性,则 XML 是一种不错的选择.而且,如果满足下列某些属性,则它还是一种适当的选择: • 您的数据比较稀疏,或者您不了解数据的结构,或者数据的结构

使用XML向SQL Server 2005批量写入数据——一次有关XML时间格式的折腾经历

原文:使用XML向SQL Server 2005批量写入数据--一次有关XML时间格式的折腾经历 常常遇到需要向SQL Server插入批量数据,然后在存储过程中对这些数据进行进一步处理的情况.存储过程并没有数组.列表之类的参数类型,使用XML类型可妥善解决这个问题. 不过,SQL Server2005对标准xml的支持不足,很多地方需要特别处理.举一个例子说明一下. 这个场景是往存储过程里传递一个xml序列化了的List<Model>. 1.Model的代码如下,这是一个实体类 public

使用XML向SQL Server 2005批量写入数据——一次有关XML时间格式的折腾经历

使用XML向SQL Server 2005批量写入数据--一次有关XML时间格式的折腾经历   原文:使用XML向SQL Server 2005批量写入数据--一次有关XML时间格式的折腾经历 常常遇到需要向SQL Server插入批量数据,然后在存储过程中对这些数据进行进一步处理的情况.存储过程并没有数组.列表之类的参数类型,使用XML类型可妥善解决这个问题. 不过,SQL Server2005对标准xml的支持不足,很多地方需要特别处理.举一个例子说明一下. 这个场景是往存储过程里传递一个x

SQL Server 2005的XML支持与异常处理

本文给出了类型化和非类型化XML列各自的优势.将SQL Server 2000数据库迁移到SQL Server2005,新的异常处理如何工作:如果表的架构发生更改,我如何执行操作等,供大家参考! SQL Server 2005 包括对Transact-SQL (T-SQL) 语言的几项重要改进.新增功能之一是一种新的触发器,它在数据定义语言 (DDL) 语句运行时激发.在跟踪或保护数据库对象的创建和修改,或对数据库服务器进行更改时,DDL 触发器非常有用.另一个新功能涉及异常处理,该功能因包含T

如何在SQL Server 2005中实现数据同步

现在假如有一个这样的应用,有一个游戏服务商在推广一个大型游戏的时候,现在架设了多台数据库服务器,为了数据的便于统计,最终这些数据可以自动的转入到指定存储的另一台服务器中,这时候就会面临着一个这样的问题,如何保证这些多台数据库之间的数据的同步呢? 我们就可以使用复制的办法,复制是将一组数据或数据库对象从一个数据库复制和分发到另外一个数据库,从而使不同的服务器用户都可以在权限的许可的范围内共享这份数据.使用复制,可以在局域网和广域网上将数据分发到不同位置,可以确保分布在不同地点的数据自动同步更新,从

SQL Server 2005中查询并修改数据的不合理设计

在SQL Server 2000中,我们想在数据库表中直接修改数据,一般的操作方法是:在SQL Server 企业管理中,选择相应的表,点击右键,在"打开表"中选择"查询",在SQL编辑窗口中输入SQL语句找到要修改的记录,然后在结果窗口中直接修改相应的字段. 那在SQL Server 2005中,需要怎样操作呢? 在SQL Server Management Studio中,找到相应的表,点击右键,选择"Open Table",然后点击&quo

如何使用XML向SQL Server 2005批量写入数据:关于XML时间格式

常常遇到需要向SQL Server插入批量数据,然后在存储过程中对这些数据进行进一步处理的情况.存储过程并没有数组.列表之类的参数类型,使用XML类型可妥善解决这个问题. 不过,SQL Server2005对标准xml的支持不足,很多地方需要特别处理.举一个例子说明一下. 这个场景是往存储过程里传递一个xml序列化了的List<Model>. 1.Model的代码如下,这是一个实体类 public class Model { /// <summary> /// UIN /// &l

SQL Server中的XML数据进行insert、update、delete_mssql2005

SQL Server中新增加了XML.Modify()方法,分别为xml.modify(insert),xml.modify(delete),xml.modify(replace)对应XML的插入,删除和修改操作. 本文以下面XML为例,对三种DML进行说明: declare @XMLVar xml = ' <catalog> <book category="ITPro"> <title>Windows Step By Step</title&

sql server 2005如何导出数据到oracle 11g

导出是用MS自带的ole db provider访问接口导出: 1.右键要导出的数据库[任务]->[导出数据]->设置导出数据源 2.设置oracle为目标数据源 3.设置目标表(创建) 4.编辑字段 由于sqlserver的t-sql与oracle的pl/sql定义数据类型不一样,这里注意要修改类型: int -> number (注意设置number的精度) nvarchar -> varchar2 (最好是nvarchar2,但ms这个驱动只提供这种转换) datetime