使用 XML updategram 删除数据 (SQLXML 4.0)
当记录实例出现在 <before> 块中并且在 <after> 块中没有相应记录时,updategram 指示删除操作。这种情况下,updategram 将从数据库中删除 <before> 块中的记录。
下面是 updategram 的删除操作格式:
<ROOT xmlns:updg="urn:schemas-microsoft-com:xml-updategram">
<updg:sync [mapping-schema="SampleSchema.xml"] >
<updg:before>
<ElementName />
[<ElementName .../>... ]
</updg:before>
[<updg:after>
</updg:after>]
</updg:sync>
</ROOT>
如果 updategram 仅执行删除操作,则可以省略 <after> 标记。如果不指定可选的 mapping-schema 属性,则在 updategram 中指定的 <ElementName> 将映射到数据库表,并且子元素或属性映射到表中的列。
如果在 updategram 中指定的元素要么匹配表中的多个行,要么不匹配任何行,则 updategram 返回错误,并取消整个 <sync> 块。updategram 中的元素每次只能删除一个记录。
示例
本节中的示例使用默认映射(即未在 updategram 中指定映射架构)。有关使用映射架构的 updategram 的更多示例,请参阅 在 updategram 中指定带批注的映射架构 (SQLXML 4.0)。
若要创建使用以下示例的工作示例,则必须满足运行 SQLXML 示例的要求 中指定的要求。
A. 使用 updategram 删除记录
以下 updategram 将从 HumanResources.Shift 表中删除两个记录。
在这些示例中,updategram 不指定映射架构。因此,updategram 使用默认映射,其中元素名称映射到表名称,而属性或子元素映射到列。
其中第一个 updategram 是以属性为中心的,并且在 <before> 块中标识两个轮班(Day-Evening 和 Evening-Night)。由于在 <after> 块中没有相应记录,因此这是删除操作。
<ROOT xmlns:updg="urn:schemas-microsoft-com:xml-updategram">
<updg:sync >
<updg:before>
<HumanResources.Shift ShiftID="4"
Name="Day-Evening"
StartTime="1900-01-01 11:00:00.000"
EndTime="1900-01-01 19:00:00.000"
ModifiedDate="2004-01-01 00:00:00.000" />
<HumanResources.Shift ShiftID="5"
Name="Evening-Night"
StartTime="1900-01-01 19:00:00.000"
EndTime="1900-01-01 03:00:00.000"
ModifiedDate="2004-01-01 00:00:00.000" />
</updg:before>
<updg:after>
</updg:after>
</updg:sync>
</ROOT>
测试 updategram
在使用 XML updategram 插入数据 (SQLXML 4.0)中完成示例 B(“使用 updategram 插入多个记录”)。
将上面的 updategram 复制到记事本,并将它另存为 Updategram-RemoveShifts.xml,保存在用于完成使用 XML updategram 插入数据 (SQLXML 4.0)中的“使用 updategram 插入多个记录”的同一文件夹中。
创建并使用 SQLXML 4.0 测试脚本 (Sqlxml4test.vbs) 以执行 updategram。
有关详细信息,请参阅使用 ADO 执行 SQLXML 4.0 查询。