Dela via


Sammanfoga entitet

Åtgärden Merge Entity uppdaterar en befintlig entitet genom att uppdatera entitetens egenskaper. Den här åtgärden ersätter inte den befintliga entiteten, som åtgärden Uppdatera entitet gör.

Förfrågan

Du kan skapa begäran på Merge Entity följande sätt. HTTPS rekommenderas. Ersätt myaccount med namnet på ditt lagringskonto och mytable med namnet på tabellen. Ersätt myPartitionKey och myRowKey med namnet på partitionsnyckeln och radnyckeln som identifierar entiteten som ska uppdateras.

Metod URI för förfrågan HTTP-version
MERGE https://myaccount.table.core.windows.net/mytable(PartitionKey='myPartitionKey', RowKey='myRowKey') HTTP/1.1

Adressen för den entitet som ska uppdateras kan ta ett antal formulär på begärande-URI:n. Mer information finns i OData Protocol .

Emulerad lagringstjänst-URI

När du gör en begäran mot den emulerade lagringstjänsten anger du emulatorns värdnamn och Azure Table Storage-porten som 127.0.0.1:10002, följt av namnet på det emulerade lagringskontot.

Metod URI för förfrågan HTTP-version
MERGE http://127.0.0.1:10002/devstoreaccount1/mytable(PartitionKey='myPartitionKey', RowKey='myRowKey') HTTP/1.1

Table Storage i lagringsemulatorn skiljer sig från Azure Table Storage på flera sätt. Mer information finns i Skillnader mellan lagringsemulatorn och Azure Storage-tjänster.

URI-parametrar

Du kan ange följande ytterligare parametrar för begärande-URI:n.

Parameter Beskrivning
timeout Valfritt. Parametern timeout uttrycks i sekunder. Mer information finns i Ange tidsgränser för Table Storage-åtgärder.

Begärandehuvuden

I följande tabell beskrivs obligatoriska och valfria begärandehuvuden.

Begärandehuvud Beskrivning
Authorization Krävs. Anger auktoriseringsschema, kontonamn och signatur. Mer information finns i Auktorisera begäranden till Azure Storage.
Date eller x-ms-date Krävs. Anger Coordinated Universal Time (UTC) för begäran. Mer information finns i Auktorisera begäranden till Azure Storage.
x-ms-version Valfritt. Anger vilken version av åtgärden som ska användas för den här begäran. Mer information finns i Versionshantering för Azure Storage-tjänsterna.
Content-Type Krävs. Anger nyttolastens innehållstyp. Möjliga värden är application/atom+xml och application/json.

Mer information om giltiga innehållstyper finns i Nyttolastformat för Table Storage-åtgärder.
Content-Length Krävs. Längden på begärandetexten.
If-Match Krävs. Klienten kan ange ETag för entiteten på begäran, så att den kan jämföras med tjänstens ETag underhåll för optimistisk samtidighet. Uppdateringsåtgärden utförs endast om den ETag som skickas av klienten matchar värdet som upprätthålls av servern. Den här matchningen anger att entiteten inte har ändrats sedan den hämtades av klienten.

Om du vill framtvinga en ovillkorlig uppdatering anger du If-Match jokertecknet (*).
x-ms-client-request-id Valfritt. Tillhandahåller ett klientgenererat, täckande värde med en teckengräns på 1 kibibyte (KiB) som registreras i loggarna när loggningen har konfigurerats. Vi rekommenderar starkt att du använder det här huvudet för att korrelera aktiviteter på klientsidan med begäranden som servern tar emot. Mer information finns i Övervaka Azure Table Storage.

Begärandetext

Åtgärden Merge Entity skickar entiteten som ska uppdateras som en entitet OData , som kan vara antingen en JSON eller en Atom-feed. Mer information finns i Infoga och uppdatera entiteter.

Svarsåtgärder

Svaret innehåller en HTTP-statuskod och en uppsättning svarshuvuden.

Statuskod

En lyckad åtgärd returnerar statuskoden 204 (inget innehåll). Information om statuskoder finns i Status- och felkoder och Tabelllagringsfelkoder.

Svarshuvuden

Svaret för den här åtgärden innehåller följande rubriker. Svaret kan också innehålla ytterligare standard-HTTP-huvuden. Alla standardhuvuden överensstämmer med HTTP/1.1-protokollspecifikationen.

Svarsrubrik Description
ETag För ETag entiteten.
x-ms-request-id Det här huvudet identifierar unikt den begäran som gjordes och kan användas för att felsöka begäran. Mer information finns i Felsöka API-åtgärder.
x-ms-version Anger vilken version av Table Storage som används för att köra begäran. Det här huvudet returneras för begäranden mot version 2009-09-19 och senare.
Date Ett UTC-datum/tid-värde som anger den tid då svaret initierades. Tjänsten genererar det här värdet.
x-ms-client-request-id Du kan använda det här huvudet för att felsöka begäranden och motsvarande svar. Värdet för det här huvudet är lika med värdet för x-ms-client-request-id huvudet, om det finns i begäran. Värdet är högst 1 024 synliga ASCII-tecken. x-ms-client-request-id Om rubriken inte finns i begäran visas inte det här huvudet i svaret.

Själva svaret

Inga.

Exempelsvar

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  

Auktorisering

Kontoägaren kan utföra den här åtgärden. Dessutom kan alla med en signatur för delad åtkomst som har behörighet att utföra den här åtgärden göra det.

Kommentarer

Table Storage gör null inte värden för egenskaper beständiga. Att ange en egenskap med ett null värde motsvarar att utelämna egenskapen i begäran. Endast egenskaper med icke-värdennull uppdateras av åtgärden Merge Entity .

Du kan inte ta bort en egenskap med en Merge Entity åtgärd. Om du behöver göra detta ersätter du entiteten genom att anropa åtgärden Uppdatera entitet .

När du sammanfogar en entitet måste du ange systemegenskaperna PartitionKey och RowKey som en del av sammanslagningsåtgärden.

En entitet ger ETag standardoptimistisk samtidighet för sammanslagningsåtgärder. Värdet ETag är ogenomskinlig och bör inte läsas eller användas. Innan en sammanslagningsåtgärd inträffar verifierar Table Storage att entitetens aktuella ETag värde är identiskt med det ETag värde som ingår i begäran i If-Match rubriken. Om värdena är identiska avgör Table Storage att entiteten inte har ändrats sedan den hämtades och sammanfogningsåtgärden fortsätter.

Om entiteten skiljer sig från den som anges med sammanslagningsbegäran ETag misslyckas sammanslagningsåtgärden med statuskoden 412 (villkoret misslyckades). Det här felet anger att entiteten har ändrats på servern sedan den hämtades. Lös det här felet genom att hämta entiteten och skicka begäran igen.

Om du vill framtvinga en ovillkorlig sammanslagningsåtgärd anger du värdet If-Match för rubriken till jokertecknet (*) i begäran. Om du skickar det här värdet till åtgärden åsidosätter du standardinställningen optimistisk samtidighet och ignorerar eventuella matchningsfel i ETag värden.

If-Match Om rubriken saknas i begäran i version 2011-08-18 och senare utför tjänsten en infognings- eller sammanslagningsåtgärd (upsert). I versioner före 2011-08-18 returnerar tjänsten statuskoden 400 (felaktig begäran).

Alla program som kan auktorisera och skicka en HTTP MERGE begäran kan sammanfoga en entitet. Mer information om hur du skapar en fråga med hjälp av finns HTTP MERGEi Lägga till, ändra och ta bort entiteter.

Information om hur du utför batchsammanslagningsåtgärder finns i Utföra entitetsgrupptransaktioner.

Se även

Uppdatera entitet
Auktorisera begäranden till Azure Storage
Ange versionshuvuden för OData-datatjänsten
Status- och felkoder
Felkoder för Table Storage