mssql sqlserver xml数据类型之modify(insert)用法说明


摘要:
下文讲述在sqlserver中对一个xml数据类型进行插入xml信息的方法分享
实验环境:sql server 2008


sql server提供xml插入方法insert,此方法可以向xml数据类型中指定的节点位置插入xml结构串

xml之insert语法简介

insert Expression1 (
{as first | as last} into | after | before
Expression2
)
参数说明:
Expression1:
标识要插入的一个或多个节点。
这可以是一个常量 XML 实例、对应用修改方法的相同 XML 架构集合的类型化 XML 数据类型实例的引用、使用单独的 sql:column()/sql:variable() 函数的非类型化 XML 数据类型实例或者是一个 XQuery 表达式。
该表达式可以得出节点、文本节点或一组有序的节点。 但它无法解得根 (/) 节点。
如果该表达式得出一个值或一组值,则这些值作为单个文本节点插入,各值之间以空格分隔开。
如果将多个节点指定为常量,则这些节点用括号括住,并以逗号分隔开。 但无法插入异构序列(如一组元素、属性或值)。
如果 Expression1 解析到一个空序列,不发生插入操作且不返回任何错误。
into:
Expression1 标识的节点作为 Expression2 标识的节点的直接后代(子节点)插入。 如果 Expression2 中的节点已有一个或多个子节点,
则必须使用 as first 或 as last 来指定所需的新节点添加位置。
例:分别在子列表的开头或末尾。 插入属性时忽略 as first 和 as last 关键字。
after:
Expression1 标识的节点作为 Expression2 标识的节点的同级节点直接在其后面插入。
after 关键字不能用于插入属性。 例如,它不能用于插入属性构造函数或从 XQuery 返回属性。
before:
Expression1 标识的节点作为 Expression2 标识的节点的同级节点直接在其前面插入。
before 关键字不能用于插入属性。 例如,它不能用于插入属性构造函数或从 XQuery 返回属性。
Expression2:
标识节点。 Expression1 标识的节点是相对于 Expression2 标识的节点插入的。 这可以是 XQuery 表达式,返回当前被引用的文档中现有节点的引用。
如果返回多个节点,则插入失败。 如果 Expression2 返回一个空序列,不发生插入操作且不返回任何错误。 如果 Expression2 在静态时不是单一实例,将返回静态错误。
Expression2 不能为处理指令、注释或属性。 请注意,Expression2 必须是文档中现有节点的引用,而不是构造的节点。

xml之insert举例说明

mssql_sqlserver_xml_insert_操作举例

mssql_sqlserver_xml_insert_操作举例


示例代码下载:
mssql_7500_xml数据类型_insert操作_应用脚本下载