(0) exportieren Drucken
Alle erweitern

Merge Entity

Letzte Aktualisierung: Februar 2014

Mit dem Merge Entity-Vorgang wird eine vorhandene Entität aktualisiert, indem die Eigenschaften der Entität aktualisiert werden. Mit diesem Vorgang wird nicht wie beim Update Entity-Vorgang die vorhandene Entität ersetzt.

Die Merge Entity-Anforderung kann wie folgt erstellt werden. HTTPS wird empfohlen. Ersetzen Sie myaccount durch den Namen des Speicherkontos, mytable durch den Namen der Tabelle und myPartitionKey und myRowKey durch den Namen des Partitionsschlüssels und Zeilenschlüssels, die die zu aktualisierende Entität identifizieren:

 

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 im Anforderungs-URI kann verschiedene Formate aufweisen. Weitere Informationen finden Sie in den OData-URI-Konventionen.

Wenn Sie eine Anforderung für den emulierten Speicherdienst ausführen, geben Sie den Emulatorhostnamen und den Port des Tabellendiensts mit 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

Der Tabellendienst im Speicheremulator unterscheidet sich auf mehrere Weisen vom Windows® Azure™-Tabellendienst. Weitere Informationen finden Sie unter About Development Storage und Unterschiede zwischen dem Speicheremulator und den Azure-Speicherdiensten.

Keiner.

In der folgenden Tabelle werden erforderliche und optionale Anforderungsheader beschrieben.

 

Anforderungsheader Beschreibung

Authorization

Erforderlich. Gibt das Authentifizierungsschema, den Kontonamen und die Signatur an. Weitere Informationen finden Sie unter Authentifizierung für die Azure-Speicherdienste.

Date - oder - x-ms-date

Erforderlich. Gibt die Uhrzeit der Anforderung in koordinierter Weltzeit (UTC) an. Weitere Informationen finden Sie unter Authentifizierung für die Azure-Speicherdienste.

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 Tabellendienstvorgänge.

Content-Length

Erforderlich. Die Länge des Anforderungstexts.

If-Match

Erforderlich. Der Client gibt ggf. das ETag für die Entität für die Anforderung an, um einen Vergleich mit dem vom Dienst zum Zweck vollständiger Parallelität verwalteten ETag auszuführen. Der Updatevorgang wird nur ausgeführt, wenn das vom Client gesendete ETag mit dem Wert übereinstimmt, der vom Server verwaltet wird und der angibt, dass die Entität nicht geändert wurde, seit sie durch den 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, nicht transparenten Wert mit einer Zeichenbeschränkung von 1 KB bereit, der in den Analyseprotokollen erfasst wird, wenn die Protokollierung der Speicheranalyse aktiviert ist. Die Verwendung dieses Headers wird dringend empfohlen, um clientseitige Aktivitäten mit den vom Server empfangenen Anforderungen zu korrelieren. Weitere Informationen finden Sie unter Informationen zur Protokollierung durch die Speicheranalyse und Windows Azure-Protokollierung: Verwenden von Protokollen zur Nachverfolgung von Speicheranforderungen.

Der Merge Entity-Vorgang sendet die zu aktualisierende Entität als OData-Entität, die entweder einem JSON- oder Atom-Feed entsprechen kann. Weitere Informationen finden Sie unter Einfügen und Aktualisieren von Entitäten.

Die Antwort enthält den HTTP-Statuscode und einen Satz von Antwortheadern.

Bei einem erfolgreichen Vorgang wird der Statuscode 204 (Kein Inhalt) zurückgegeben.

Weitere Informationen zu Statuscodes finden Sie unter Status- und Fehlercodes und Fehlercodes für den Tabellendienst.

Die Antwort für diesen Vorgang umfasst die folgenden Header. Die Antwort kann außerdem weitere HTTP-Standardheader enthalten. Alle Standardheader entsprechen der HTTP/1.1-Protokollspezifikation.

 

Antwortheader Beschreibung

ETag

Das ETag für die Entität.

x-ms-request-id

Dieser Header identifiziert die erfolgte Anforderung eindeutig 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 des Tabellendiensts an, der zum Ausführen der Abfrage verwendet wird. Dieser Header wird für Anforderungen zurückgegeben, die für Version 2009-09-19 und höher erfolgen.

Date

Ein vom Dienst generierter Datums-/Uhrzeitwert in UTC, der angibt, wann die Antwort initiiert wurde.

Keiner.

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

Dieser Vorgang kann durch den Kontobesitzer und von jedem Benutzer mit einer SAS (Shared Access Signature) ausgeführt werden, der über die Berechtigung zum Ausführen des Vorgangs verfügt.

Alle Eigenschaften mit NULL-Werten werden vom Merge Entity-Vorgang ignoriert. Alle anderen Eigenschaften werden aktualisiert.

Eine Eigenschaft kann nicht mit einem Merge Entity-Vorgang entfernt werden. Um eine Eigenschaft aus einer Entität zu entfernen, ersetzen Sie die Entität, indem Sie den Update Entity-Vorgang aufrufen.

Wenn Sie eine Entität zusammenführen, müssen Sie die PartitionKey-Systemeigenschaft und die RowKey-Systemeigenschaft als Teil des Zusammenführungsvorgangs angeben.

Das ETag einer Entität stellt standardmäßige vollständige Parallelität für Zusammenführungsvorgänge bereit. Der ETag-Wert ist nicht transparent und sollte nicht gelesen oder verwendet werden. Bevor ein Zusammenführungsvorgang erfolgt, überprüft der Tabellendienst, ob der aktuelle ETag-Wert der Entität mit dem ETag-Wert in der Anforderung im Header If-Match identisch ist. Wenn die Werte identisch sind, bestimmt der Tabellendienst, dass die Entität seit ihrem Abruf nicht geändert wurde, und der Zusammenführungsvorgang wird fortgesetzt.

Wenn das ETag der Entität von dem ETag in der Zusammenführungsanforderung abweicht, schlägt der Zusammenführungsvorgang mit dem Statuscode 412 (Vorbedingung nicht erfüllt) 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 erneut ab, und senden Sie die Anforderung erneut.

Um einen unbedingten Zusammenführungsvorgang zu erzwingen, legen Sie in der Anforderung den Wert des If-Match-Headers auf das Platzhalterzeichen (*) fest. Durch das Übergeben dieses Werts an den Vorgang wird die standardmäßige vollständige Parallelität überschrieben, und nicht übereinstimmende ETag-Werte werden ignoriert.

Wenn der If-Match-Header nicht in der Anforderung vorhanden ist, gibt der Dienst den Statuscode 400 (Ungültige Anforderung) zurück. Eine Anforderung, die ein anderes ungültiges Format aufweist, kann ebenfalls den Statuscode 400 zurückgeben. Weitere Informationen finden Sie unter Fehlercodes für den Tabellendienst.

Jede Anwendung, die eine HTTP-MERGE-Anforderung authentifizieren und senden kann, kann eine Entität zusammenführen. Weitere Informationen zum Erstellen einer Abfrage mithilfe von HTTP MERGE finden Sie unter Vorgehensweise: Hinzufügen, Ändern und Löschen von Entitäten.

Weitere Informationen über das Durchführen von Batchzusammenführungsvorgängen finden Sie unter Ausführen von Entitätsgruppentransaktionen.

Siehe auch

Anzeigen:
© 2014 Microsoft