使用 XML updategram 删除数据 (SQLXML 4.0)
updategram 指示在前>块中出现记录实例时<删除操作,且后>块中<没有相应的记录。 在这种情况下,updategram 将从数据库中删除前>块中的<记录。
下面是 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 仅执行删除操作,则可以省略 <后> 标记。 如果未指定可选的映射架构属性,<updategram 中指定的 ElementName> 将映射到数据库表,子元素或属性映射到表中的列。
如果 updategram 中指定的元素匹配表中的多个行,或者与任何行不匹配,则 updategram 将返回错误并取消整个 <同步> 块。 updategram 中的元素每次只能删除一个记录。
示例
本节中的示例使用默认映射(即未在 updategram 中指定映射架构)。 有关使用映射架构的更新报的更多示例,请参阅在 Updategram 中指定带批注的映射架构(SQLXML 4.0)。
若要使用以下示例创建工作示例,必须满足运行 SQLXML 示例的要求中指定的要求。
A. 使用 updategram 删除记录
以下 updategram 将从 HumanResources.Shift 表中删除两个记录。
在这些示例中,updategram 不指定映射架构。 因此,updategram 使用默认映射,其中元素名称映射到表名称,而属性或子元素映射到列。
第一个 updategram 以属性为中心的,在前>一个块中<标识两个班次(日晚和晚夜)。 由于后<>块中没有相应的记录,因此这是一个删除操作。
<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 插入多个记录” )所在的文件夹中Updategram-RemoveShifts.xml,以使用 XML 更新报(SQLXML 4.0)插入数据。
创建并使用 SQLXML 4.0 测试脚本 (Sqlxml4test.vbs) 以执行 updategram。
有关详细信息,请参阅使用 ADO 执行 SQLXML 4.0 查询。