Sdílet prostřednictvím


Sloučit entitu

Operace Merge Entity aktualizuje existující entitu aktualizací vlastností entity. Tato operace nenahrazuje existující entitu jako operace Aktualizace entity .

Žádost

Požadavek můžete sestavit Merge Entity následujícím způsobem. Doporučuje se https. Nahraďte myaccount názvem vašeho účtu úložiště a mytable názvem vaší tabulky. Nahraďte myPartitionKey a myRowKey názvem klíče oddílu a klíče řádku identifikující entitu, která se má aktualizovat.

Metoda Identifikátor URI žádosti Verze PROTOKOLU HTTP
MERGE https://myaccount.table.core.windows.net/mytable(PartitionKey='myPartitionKey', RowKey='myRowKey') HTTP/1.1

Adresa entity, která se má aktualizovat, může mít několik formulářů v identifikátoru URI požadavku. Další podrobnosti najdete v tématu Protokol OData .

Identifikátor URI služby emulovaného úložiště

Když vytvoříte požadavek na službu emulovaného úložiště, zadejte název hostitele emulátoru a port Azure Table Storage jako 127.0.0.1:10002a za ním název emulovaného účtu úložiště.

Metoda Identifikátor URI žádosti Verze PROTOKOLU HTTP
MERGE http://127.0.0.1:10002/devstoreaccount1/mytable(PartitionKey='myPartitionKey', RowKey='myRowKey') HTTP/1.1

Table Storage v emulátoru úložiště se od Azure Table Storage liší několika způsoby. Další informace najdete v tématu Rozdíly mezi emulátorem úložiště a službami Azure Storage.

Parametry identifikátoru URI

V identifikátoru URI požadavku můžete zadat následující další parametry.

Parametr Popis
timeout Nepovinný parametr. Parametr se timeout vyjadřuje v sekundách. Další informace najdete v tématu Nastavení časových limitů pro operace služby Table Storage.

Hlavičky požadavku

Následující tabulka popisuje požadované a volitelné hlavičky požadavků.

Hlavička požadavku Popis
Authorization Povinná hodnota. Určuje schéma autorizace, název účtu a podpis. Další informace najdete v tématu Autorizace požadavků do služby Azure Storage.
Date nebo x-ms-date Povinná hodnota. Určuje formát UTC (Coordinated Universal Time). Další informace najdete v tématu Autorizace požadavků do služby Azure Storage.
x-ms-version Nepovinný parametr. Určuje verzi operace, která se má pro tento požadavek použít. Další informace najdete v tématu Správa verzí pro služby Azure Storage.
Content-Type Povinná hodnota. Určuje typ obsahu datové části. Možné hodnoty jsou application/atom+xml a application/json.

Další informace o platných typech obsahu najdete v tématu Formát datové části pro operace služby Table Storage.
Content-Length Povinná hodnota. Délka textu požadavku.
If-Match Povinná hodnota. Klient může zadat ETag pro entitu v požadavku, aby bylo možné porovnat s ETag objektem spravovaným službou pro účely optimistické souběžnosti. Operace aktualizace se provede pouze v ETag případě, že hodnota odeslaná klientem odpovídá hodnotě udržované serverem. Tato shoda značí, že entita nebyla od načtení klientem změněna.

Pokud chcete vynutit nepodmíněnou aktualizaci, nastavte If-Match na zástupný znak (*).
x-ms-client-request-id Nepovinný parametr. Poskytuje klientem vygenerovanou neprůselnou hodnotu s limitem počtu znaků 1 kibibajt (KiB), který je zaznamenán v protokolech při konfiguraci protokolování. Důrazně doporučujeme použít tuto hlavičku ke korelaci aktivit na straně klienta s požadavky, které server přijímá. Další informace najdete v tématu Monitorování služby Azure Table Storage.

Text požadavku

Operace Merge Entity odešle entitu, která se má aktualizovat, jako entitu OData , což může být buď JSON, nebo informační kanál Atom. Další informace najdete v tématu Vkládání a aktualizace entit.

Odpověď

Odpověď obsahuje stavový kód HTTP a sadu hlaviček odpovědi.

Stavový kód

Úspěšná operace vrátí stavový kód 204 (bez obsahu). Informace o stavových kódech najdete v tématech Kódy stavů a chyb a Kódy chyb služby Table Storage.

Hlavičky odpovědi

Odpověď na tuto operaci obsahuje následující hlavičky. Odpověď může také obsahovat další standardní hlavičky HTTP. Všechny standardní hlavičky odpovídají specifikaci protokolu HTTP/1.1.

Hlavička odpovědi Description
ETag Pro ETag entitu.
x-ms-request-id Tato hlavička jednoznačně identifikuje požadavek, který byl proveden, a lze ji použít k řešení potíží s požadavkem. Další informace najdete v tématu Řešení potíží s operacemi rozhraní API.
x-ms-version Označuje verzi služby Table Storage použitou ke spuštění požadavku. Tato hlavička se vrátí pro požadavky provedené proti verzi 2009-09-19 a novější.
Date Hodnota data a času UTC, která označuje čas, kdy byla odpověď zahájena. Tato služba vygeneruje tuto hodnotu.
x-ms-client-request-id Tuto hlavičku můžete použít k řešení potíží s požadavky a odpovídajícími odpověďmi. Hodnota této hlavičky se rovná hodnotě x-ms-client-request-id hlavičky, pokud se nachází v požadavku. Hodnota je maximálně 1024 viditelných znaků ASCII. Pokud se hlavička x-ms-client-request-id v požadavku nenachází, nebude tato hlavička v odpovědi.

Text odpovědi

Žádné

Ukázková odpověď

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  

Autorizace

Tuto operaci může provést vlastník účtu. Navíc to může udělat každý se sdíleným přístupovým podpisem, který má oprávnění k provedení této operace.

Poznámky

Table Storage nedává null hodnoty vlastností jako trvalé. Zadání vlastnosti s null hodnotou je ekvivalentem vynechání této vlastnosti v požadavku. Operace aktualizuje pouze vlastnosti, které Merge Entity nemajínull hodnoty.

Vlastnost Merge Entity s operací nelze odebrat. Pokud to potřebujete udělat, nahraďte entitu voláním operace Aktualizovat entitu .

Při slučování entity je nutné zadat PartitionKey systémové vlastnosti a RowKey jako součást operace sloučení.

Entita ETag poskytuje výchozí optimistickou souběžnost pro operace sloučení. Hodnota ETag je neprůhlhlá a neměla by se číst ani se na ně spoléhat. Než dojde k operaci sloučení, Table Storage ověří, že aktuální ETag hodnota entity je shodná ETag s hodnotou obsaženou v požadavku v If-Match hlavičce. Pokud jsou hodnoty identické, Table Storage určí, že entita nebyla od načtení změněna, a operace sloučení bude pokračovat.

Pokud se entita ETag liší od entity zadané v žádosti o sloučení, operace sloučení selže se stavovým kódem 412 (Předběžná podmínka se nezdařila). Tato chyba značí, že entita byla na serveru od načtení změněna. Pokud chcete tuto chybu vyřešit, načtěte entitu a znovu vydejte požadavek.

Pokud chcete vynutit nepodmíněnou operaci sloučení, nastavte hodnotu If-Match hlavičky na zástupný znak (*) v požadavku. Předání této hodnoty operaci přepíše výchozí optimistickou souběžnost a ignoruje případnou neshodu hodnot ETag .

Pokud hlavička If-Match v požadavku chybí ve verzi 2011-08-18 a novější, služba provede operaci vložení nebo sloučení entity (upsert). Ve verzích před 2011-08-18 služba vrací stavový kód 400 (chybný požadavek).

Entitu HTTP MERGE může sloučit libovolná aplikace, která může autorizovat a odeslat požadavek. Další informace o vytváření dotazů pomocí HTTP MERGEnajdete v tématu Přidání, úprava a odstranění entit.

Informace o provádění operací dávkového sloučení najdete v tématu Provádění transakcí skupin entit.

Viz také

Aktualizace entity
Autorizace požadavků do Služby Azure Storage
Nastavení hlaviček verzí datové služby OData
Stavové kódy a kódy chyb
Kódy chyb služby Table Storage