使用 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 查詢>。