Usuwanie danych za pomocą aktualizatorów XML (SQLXML 4.0)

Dotyczy:programu SQL ServerAzure SQL Database

Updategram wskazuje operację usuwania, gdy instancja rekordu pojawia się w bloku <przed> i nie ma odpowiednich rekordów w bloku <po.> W takim przypadku updategram usuwa rekord z bloku przed<> z bazy danych.

Oto format updategramu dla operacji usuwania:

<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>  

Możesz pominąć <tag after> , jeśli updategram wykonuje tylko operację usuwania. Jeśli nie określisz opcjonalnego atrybutu mapping-schema, ElementName<> określony w updategramie odwzorowuje się na tabelę bazy danych, a elementy potomne lub atrybuty na kolumny w tabeli.

Jeśli element określony w updategramie pasuje do więcej niż jednego wiersza w tabeli lub nie pasuje do żadnego wiersza, updategram zwraca błąd i anuluje cały <blok synchronizacji> . Tylko jeden rekord może być usuwany przez element w updategramie.

Przykłady

Przykłady w tej sekcji wykorzystują domyślne odwzorowanie (czyli nie określono schematu mapowania w updategramie). Aby uzyskać więcej przykładów updategramów korzystających ze schematów mapowania, zobacz Określanie schematu mapowania adnotacji w updategramie (SQLXML 4.0).

Aby utworzyć działające przykłady przy użyciu poniższych przykładów, należy spełnić wymagania określone w temacie Wymagania dotyczące uruchamiania przykładów SQLXML.

A. Usuwanie rekordu za pomocą updategramu

Poniższe updategramy usuwają dwa rekordy z tabeli HumanResources.Shift.

W tych przykładach updategram nie określa schematu mapowania. Dlatego updategram używa domyślnego mapowania, w którym nazwa elementu odpowiada nazwie tabeli, a atrybuty lub podelementy kolumnom.

Ten pierwszy updategram jest skoncentrowany na atrybutach i identyfikuje dwa przesunięcia (Day-Evening i Evening-Night) w bloku <przed> atributem. Ponieważ w bloku <po nie> ma odpowiadającego mu rekordu, jest to operacja usuwania.

<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>  
Aby przetestować updategram
  1. Kompletny przykład B ("Wstawianie wielu rekordów za pomocą updategramu") w Inserting Data Using XML Updategrams (SQLXML 4.0).

  2. Skopiuj powyższy updategram do Notepada i zapisz go jako Updategram-RemoveShifts.xml w tym samym folderze, który został użyty do wypełnienia ("Inserting multiple records by using a updategram") w Inserting Data Using XML Updategrams (SQLXML 4.0).

  3. Stwórz i użyj testowego skryptu SQLXML 4.0 (Sqlxml4test.vbs) do uruchomienia updategramu.

    Aby uzyskać więcej informacji, zobacz Using ADO to Execute SQLXML 4.0 Queries (Używanie narzędzia ADO do wykonywania zapytań SQLXML 4.0).