XML アップデートグラムを使用した、データの削除 (SQLXML 4.0)
適用対象: SQL Server Azure SQL Database
アップデートグラムは、レコード インスタンスが <before> ブロックに表示され、 <後> ブロックに対応するレコードがない場合に削除操作を示します。 この場合、アップデートグラムはデータベースから <before> ブロック内のレコードを削除します。
削除操作のアップデートグラムの形式は次のとおりです。
<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>
アップデートグラムが削除操作のみを実行している場合は、 <after> タグを省略できます。 省略可能な mapping-schema 属性を指定しない場合、アップデートグラムで指定された <ElementName> はデータベース テーブルにマップされ、子要素または属性はテーブル内の列にマップされます。
アップデートグラムで指定された要素がテーブル内の複数の行と一致するか、行と一致しない場合、アップデートグラムはエラーを返し、 <sync> ブロック全体を取り消します。 アップデートグラム内の要素で削除できるのは、一度に 1 つのレコードだけです。
例
この例では、アップデートグラムでマッピング スキーマを指定せず、既定のマッピングを使用します。 マッピング スキーマを使用するアップデートグラムのその他の例については、「 アップデートグラム (SQLXML 4.0)での注釈付きマッピング スキーマの指定」を参照してください。
次の例を使用して作業サンプルを作成するには、「SQLXML の例を実行するための Requirementsで指定されている要件を満たす必要があります。
A. アップデートグラムを使用してレコードを削除する
次のアップデートグラムでは、HumanResources.Shift テーブルから 2 つのレコードを削除します。
この例のアップデートグラムでは、マッピング スキーマを指定しません。 したがって、アップデートグラムでは既定のマッピングが使用されます。このマッピングでは、要素名はテーブル名にマップされ、属性または副要素は列にマップされます。
この最初のアップデートグラムは属性中心であり、 <fore> ブロック内の 2 つのシフト (昼と夜) を識別します。 <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>
アップデートグラムをテストするには
XML アップデートグラムを使用したデータの挿入 (SQLXML 4.0)の 完全な例 B (「アップデートグラムを使用して複数のレコードを挿入する」)。
上記のアップデートグラムをメモ帳にコピーし、
XML アップデートグラムを使用したデータの挿入 (SQLXML 4.0)) の完了に使用したのと同じフォルダーにUpdategram-RemoveShifts.xmlとして保存します (「アップデートグラムを使用して複数のレコードを挿入する」)。SQLXML 4.0 テスト スクリプト (Sqlxml4test.vbs) を作成し、それを使用してアップデートグラムを実行します。
詳細については、「ADO を使用した SQLXML 4.0 クエリの実行」を参照してください。