Entität zusammenführen
Mit dem Merge Entity
-Vorgang wird eine vorhandene Entität aktualisiert, indem die Eigenschaften der Entität aktualisiert werden. Dieser Vorgang ersetzt nicht die vorhandene Entität, wie dies beim Vorgang Entität aktualisieren der Fall ist.
Anforderung
Sie können die Merge Entity
Anforderung wie folgt erstellen. HTTPS wird empfohlen. Ersetzen Sie myaccount durch den Namen Ihres Speicherkontos und mytable durch den Namen Ihrer Tabelle. Ersetzen Sie myPartitionKey und myRowKey durch den Namen des Partitionsschlüssels und des Zeilenschlüssels, der die zu aktualisierende Entität identifiziert.
Methode | Anforderungs-URI | HTTP-Version |
---|---|---|
MERGE |
https://myaccount.table.core.windows.net/mytable(PartitionKey='myPartitionKey', RowKey='myRowKey') |
HTTP/1.1 |
Die Adresse der zu aktualisierenden Entität kann eine Reihe von Formularen für den Anforderungs-URI annehmen. Weitere Informationen finden Sie im OData-Protokoll .
Emulierter Speicherdienst-URI
Wenn Sie eine Anforderung für den emulierten Speicherdienst stellen, geben Sie den Hostnamen des Emulators und den Azure Table Storage-Port als 127.0.0.1:10002
an, gefolgt vom Namen des emulierten Speicherkontos.
Methode | Anforderungs-URI | HTTP-Version |
---|---|---|
MERGE |
http://127.0.0.1:10002/devstoreaccount1/mytable(PartitionKey='myPartitionKey', RowKey='myRowKey') |
HTTP/1.1 |
Tabellenspeicher im Speicheremulator unterscheidet sich in vielerlei Hinsicht vom Azure Table Storage. Weitere Informationen finden Sie unter Unterschiede zwischen dem Speicheremulator und den Azure Storage-Diensten.
URI-Parameter
Sie können die folgenden zusätzlichen Parameter für den Anforderungs-URI angeben.
Parameter | BESCHREIBUNG |
---|---|
timeout |
Optional. Der timeout -Parameter wird in Sekunden angegeben. Weitere Informationen finden Sie unter Festlegen von Timeouts für Tabellenspeichervorgänge. |
Anforderungsheader
In der folgenden Tabelle werden erforderliche und optionale Anforderungsheader beschrieben.
Anforderungsheader | BESCHREIBUNG |
---|---|
Authorization |
Erforderlich. Gibt das Autorisierungsschema, den Kontonamen und die Signatur an. Weitere Informationen finden Sie unter Autorisieren von Anforderungen an Azure Storage. |
Date oder x-ms-date |
Erforderlich. Gibt die koordinierte Weltzeit (Coordinated Universal Time, UTC) für die Anforderung an. Weitere Informationen finden Sie unter Autorisieren von Anforderungen an Azure Storage. |
x-ms-version |
Optional. Gibt die Version des für die Anforderung zu verwendenden Vorgangs an. Weitere Informationen finden Sie unter Versionsverwaltung für die Azure-Speicherdienste. |
Content-Type |
Erforderlich. Gibt den Inhaltstyp der Nutzlast an. Mögliche Werte sind application/atom+xml und application/json .Weitere Informationen zu gültigen Inhaltstypen finden Sie unter Nutzlastformat für Tabellenspeichervorgänge. |
Content-Length |
Erforderlich. Die Länge des Anforderungstexts. |
If-Match |
Erforderlich. Der Client kann die ETag für die Entität in der Anforderung angeben, um mit dem ETag vom Dienst verwalteten zu vergleichen, um eine optimistische Parallelität zu erzielen. Der Aktualisierungsvorgang wird nur ausgeführt, wenn der ETag vom Client gesendete mit dem vom Server verwalteten Wert übereinstimmt. Diese Übereinstimmung gibt an, dass die Entität nicht geändert wurde, seit sie vom Client abgerufen wurde.Um ein unbedingtes Update zu erzwingen, legen Sie If-Match auf das Platzhalterzeichen (*) fest. |
x-ms-client-request-id |
Optional. Stellt einen vom Client generierten, undurchsichtigen Wert mit einem Zeichenlimit von 1 Kibibyte (KiB) bereit, der beim Konfigurieren der Protokollierung in den Protokollen aufgezeichnet wird. Es wird dringend empfohlen, diesen Header zu verwenden, um clientseitige Aktivitäten mit Anforderungen zu korrelieren, die der Server empfängt. Weitere Informationen finden Sie unter Überwachen von Azure Table Storage. |
Anforderungstext
Der Merge Entity
Vorgang sendet die Entität, die als OData
Entität aktualisiert werden soll, wobei es sich entweder um einen JSON- oder einen Atom-Feed handeln kann. Weitere Informationen finden Sie unter Einfügen und Aktualisieren von Entitäten.
Antwort
Die Antwort enthält den HTTP-Statuscode und einen Satz von Antwortheadern.
Statuscode
Bei einem erfolgreichen Vorgang wird der Statuscode 204 (Kein Inhalt) zurückgegeben. Informationen zu status-Codes finden Sie unter Status- und Fehlercodes und Tabellenspeicherfehlercodes.
Antwortheader
Die Antwort für diesen Vorgang umfasst die folgenden Header. Die Antwort kann auch zusätzliche HTTP-Standardheader enthalten. Alle Standardheader entsprechen der HTTP/1.1-Protokollspezifikation.
Antwortheader | BESCHREIBUNG |
---|---|
ETag |
Der ETag für die Entität. |
x-ms-request-id |
Dieser Header identifiziert eindeutig die Anforderung, die gestellt wurde, und kann für die Problembehandlung der Anforderung verwendet werden. Weitere Informationen finden Sie unter Problembehandlung für API-Vorgänge. |
x-ms-version |
Gibt die Version von Table Storage an, die zum Ausführen der Anforderung verwendet wird. Dieser Header wird für Anforderungen zurückgegeben, die für Version 2009-09-19 und höher erfolgen. |
Date |
Ein UTC-Datums-/Uhrzeitwert, der die Uhrzeit angibt, zu der die Antwort initiiert wurde. Der Dienst generiert diesen Wert. |
x-ms-client-request-id |
Sie können diesen Header verwenden, um Probleme mit Anforderungen und entsprechenden Antworten zu beheben. Der Wert dieses Headers entspricht dem Wert des x-ms-client-request-id Headers, wenn er in der Anforderung vorhanden ist. Der Wert ist höchstens 1024 sichtbare ASCII-Zeichen. Wenn der x-ms-client-request-id Header in der Anforderung nicht vorhanden ist, ist dieser Header in der Antwort nicht vorhanden. |
Antworttext
Keine.
Beispiel für eine Antwort
Response Status:
HTTP/1.1 204 No Content
Response Headers:
Connection: Keep-Alive
Content-Length: 0
Cache-Control: no-cache
Date: Mon, 25 Nov 2013 19:06:47 GMT
ETag: W/"0x5B168C7B6E589D2"
x-ms-version: 2013-08-15
DataServiceVersion: 1.0;NetFx
MaxDataServiceVersion: 2.0;NetFx
Server: Windows-Azure-Table/1.0 Microsoft-HTTPAPI/2.0
Authorization
Der Kontobesitzer kann diesen Vorgang ausführen. Darüber hinaus kann dies jeder benutzer mit einer freigegebenen Zugriffssignatur tun, die über die Berechtigung zum Ausführen dieses Vorgangs verfügt.
Hinweise
Tabellenspeicher macht null
Werte für Eigenschaften nicht persistent. Das Angeben einer Eigenschaft mit einem null
Wert entspricht dem Weglassen dieser Eigenschaft in der Anforderung. Nur Eigenschaften mit Nichtwertennull
werden vom Merge Entity
Vorgang aktualisiert.
Sie können eine Eigenschaft nicht mit einem Merge Entity
Vorgang entfernen. Ersetzen Sie in diesem Fall die Entität, indem Sie den Vorgang Entität aktualisieren aufrufen.
Wenn Sie eine Entität zusammenführen, müssen Sie die PartitionKey
Systemeigenschaften und RowKey
als Teil des Zusammenführungsvorgangs angeben.
Eine Entität bietet ETag
standardmäßige, optimistische Parallelität für Mergevorgänge. Der ETag
Wert ist undurchsichtig und sollte nicht gelesen oder verlassen werden. Bevor ein Mergevorgang ausgeführt wird, überprüft Table Storage, ob der aktuelle ETag
Wert der Entität mit dem Wert identisch ist, der ETag
in der Anforderung im If-Match
Header enthalten ist. Wenn die Werte identisch sind, stellt Table Storage fest, dass die Entität seit dem Abrufen nicht geändert wurde, und der Mergevorgang wird fortgesetzt.
Wenn sich die Entität ETag
von dem unterscheidet, der in der Mergeanforderung angegeben wurde, schlägt der Mergevorgang mit status Code 412 (Vorbedingung fehlgeschlagen) fehl. Dieser Fehler gibt an, dass die Entität auf dem Server geändert wurde, seit sie abgerufen wurde. Um diesen Fehler zu beheben, rufen Sie die Entität ab, und stellen Sie die Anforderung erneut aus.
Um einen unbedingten Zusammenführungsvorgang zu erzwingen, legen Sie in der Anforderung den Wert des If-Match
-Headers auf das Platzhalterzeichen (*) fest. Wenn Sie diesen Wert an den Vorgang übergeben, wird die standardmäßige, optimistische Parallelität außer Kraft gesetzt, und alle Unstimmigkeiten in ETag
Werten werden ignoriert.
Wenn der If-Match
Header in der Anforderung in Version 2011-08-18 und höher fehlt, führt der Dienst einen Vorgang zum Einfügen oder Zusammenführen von Entitäten (Upsert) aus. In Versionen vor 2011-08-18 gibt der Dienst status Code 400 (Ungültige Anforderung) zurück.
Jede Anwendung, die eine HTTP MERGE
Anforderung autorisieren und senden kann, kann eine Entität zusammenführen. Weitere Informationen zum Erstellen einer Abfrage mit HTTP MERGE
finden Sie unter Hinzufügen, Ändern und Löschen von Entitäten.
Informationen zum Ausführen von Batchzusammenführungsvorgängen finden Sie unter Durchführen von Entitätsgruppentransaktionen.
Weitere Informationen
Entität aktualisieren
Autorisieren von Anforderungen an Azure Storage
Festlegen der OData-Datendienstversionsheader
Status- und Fehlercodes
Tabellenspeicherfehlercodes