Aktualizace entity

Operace Update Entity aktualizuje existující entitu v tabulce. Operace Update Entity nahradí celou entitu a pomocí této operace můžete odebrat vlastnosti.

Žádost

Požadavek můžete vytvořit Update 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 tabulky. Nahraďte myPartitionKey a myRowKey názvem klíče oddílu a klíče řádku, který identifikuje entitu, která se má aktualizovat.

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

Adresa entity, kterou chcete aktualizovat, může mít na identifikátoru URI požadavku řadu formulářů. Další podrobnosti najdete v protokolu OData Protocol .

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

Když provedete požadavek na emulovanou službu úložiště, zadejte název hostitele emulátoru a port Azure Table Storage jako 127.0.0.1:10002následovaný názvem emulovaného účtu úložiště.

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

Table Storage v emulátoru úložiště se liší od Azure Table Storage 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

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

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

Hlavičky požadavku

Následující tabulka popisuje povinné a volitelné hlavičky požadavku.

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ů na 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ů na 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 table Storage.
Content-Length Povinná hodnota. Délka textu požadavku.
If-Match Povinná hodnota. Klient může zadat ETag entitu na požadavku, aby se srovnala se ETag službou za účelem optimistické souběžnosti. Operace aktualizace se provádí pouze v případě, že ETag 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 hodnotu vygenerovanou klientem s neprůhlé hodnotou s limitem znaků 1 kibibajtů (KiB), který je zaznamenán v protokolech služby Azure Monitor 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 Update Entity odešle entitu, která se má aktualizovat jako OData sada entit, což může být JSON nebo informační kanál Atom. Další informace naleznete v tématu Vkládání a aktualizace entit.

Poznámka

JSON je doporučený formát datové části a je to jediný formát podporovaný pro verzi 2015-12-11 a novější.

Ukázkový požadavek

JSON (verze 2013-08-15 a novější)

Tento příklad ukazuje ukázkový identifikátor URI požadavku, přidružené hlavičky požadavku a text požadavku pro informační kanál JSON.

Request Headers:  
x-ms-version: 2015-12-11  
Accept-Charset: UTF-8  
Content-Type: application/json  
If-Match: *  
x-ms-date: Mon, 27 Jun 2016 18:10:24 GMT  
Authorization: SharedKeyLite myaccount:u0sWZKmjBD1B7LY/CwXWCnHdqK4B1P4z8hKy9SVW49o=  
Content-Length: ###  
DataServiceVersion: 3.0;NetFx  
MaxDataServiceVersion: 3.0;NetFx  
  
{  
   "Address":"Santa Clara",  
   "Age":23,  
   "AmountDue":200.23,  
   "CustomerCode@odata.type":"Edm.Guid",  
   "CustomerCode":"c9da6455-213d-42c9-9a79-3e9149a57833",  
   "CustomerSince@odata.type":"Edm.DateTime",  
   "CustomerSince":"2008-07-10T00:00:00",  
   "IsActive":false,  
   "NumberOfOrders@odata.type":"Edm.Int64",  
   "NumberOfOrders":"255",  
   "PartitionKey":"mypartitionkey",  
   "RowKey":"myrowkey"  
}  

Informační kanál Atom (verze starší než 2015-12-11)

Tento příklad ukazuje ukázkový identifikátor URI požadavku, přidružené hlavičky požadavku a text požadavku pro informační kanál Atom.

Request URI:  
https://myaccount.table.core.windows.net/mytable(PartitionKey='myPartitionKey',RowKey='myRowKey')  
  
Request Headers:  
x-ms-version: 2013-08-15  
Accept: application/atom+xml,application/xml  
Accept-Charset: UTF-8  
Content-Type: application/atom+xml  
If-Match: *  
x-ms-date: Wed, 20 Nov 2013 18:10:24 GMT  
Authorization: SharedKeyLite myaccount:u0sWZKmjBD1B7LY/CwXWCnHdqK4B1P4z8hKy9SVW49o=  
Content-Length: ###  
DataServiceVersion: 1.0;NetFx  
MaxDataServiceVersion: 2.0;NetFx  
  
Request Body:  
<?xml version="1.0" encoding="utf-8"?>  
<entry xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="http://www.w3.org/2005/Atom">  
  <title />  
  <updated>2008-09-18T23:46:37.168836Z</updated>  
  <author>  
    <name />  
  </author>  
<id>https://myaccount.table.core.windows.net/mytable(PartitionKey='mypartitionkey',RowKey='myrowkey')</id>  
  <content type="application/xml">  
    <m:properties>  
      <d:Address>Santa Clara</d:Address>  
      <d:Age m:type="Edm.Int32">23</d:Age>  
      <d:AmountDue m:type="Edm.Double">200.23</d:AmountDue>  
      <d:CustomerCode m:type="Edm.Guid">c9da6455-213d-42c9-9a79-3e9149a57833</d:CustomerCode>  
      <d:CustomerSince m:type="Edm.DateTime">2008-07-10T00:00:00Z</d:CustomerSince>  
      <d:IsActive m:type="Edm.Boolean">false</d:IsActive>  
      <d:NumOfOrders m:type="Edm.Int64">255</d:NumOfOrders>  
      <d:PartitionKey>mypartitionkey</d:PartitionKey>  
      <d:RowKey>myrowkey</d:RowKey>  
    </m:properties>  
  </content>  
</entry>  

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ématu Stav a kódy chyb akódy chyb služby Table Storage.

Hlavičky odpovědi

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

Hlavička odpovědi Description
ETag Entita ETag .
x-ms-request-id Tato hlavička jednoznačně identifikuje požadavek, který byl proveden, a lze ho 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é ve verzi 2009-09-19 a novější.
Date Hodnota data a času UTC, která označuje čas, kdy byla odpověď zahájena. Služba vygeneruje tuto hodnotu.
x-ms-client-request-id Pomocí této hlavičky můžete řešit potíže 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ě 1 024 viditelných znaků ASCII. Pokud hlavička x-ms-client-request-id v požadavku není, nebude tato hlavička v odpovědi k dispozici.

Text odpovědi

Žádné

Ukázková odpověď

Response Status:  
HTTP/1.1 204 No Content  
  
Response Headers:  
Connection: Keep-Alive  
x-ms-request-id: 2c085f8f-11a4-4e1d-bd49-82c6bd87649d  
Content-Length: 0  
Cache-Control: no-cache  
Date: Mon, 27 Jun 2016 18:12:54 GMT  
ETag: W/"0x5B168C7B6E589D2"  
DataServiceVersion: 3.0;NetFx  
MaxDataServiceVersion: 3.0;NetFx  
Server: Windows-Azure-Table/1.0 Microsoft-HTTPAPI/2.0  

Autorizace

Tuto operaci může provést vlastník účtu. Kromě toho může provést kdokoli se sdíleným přístupovým podpisem, který má oprávnění k provedení této operace.

Poznámky

Při aktualizaci entity je nutné zadat PartitionKey vlastnosti systému a RowKey vlastnosti v rámci operace aktualizace.

Entita ETag poskytuje výchozí optimistickou souběžnost operací aktualizací. Hodnota ETag je neprůhlásná a neměla by být čtená nebo spoléhat na ně. Než dojde k operaci aktualizace, služba Table Storage ověří, že aktuální ETag hodnota entity je stejná jako ETag hodnota zahrnutá v požadavku na aktualizaci v If-Match hlavičce. Pokud jsou hodnoty stejné, Služba Table Storage určuje, že entita nebyla od načtení změněna a operace aktualizace pokračuje.

Pokud se ETag entita liší od zadané žádosti o aktualizaci, operace aktualizace selže se stavovým kódem 412 (podmínka se nezdařila). Tato chyba značí, že se entita od načtení změnila na serveru. Pokud chcete tuto chybu vyřešit, načtěte entitu znovu a znovu ji spusťte.

Pokud chcete vynutit nepodmíněnou operaci aktualizace, 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 všechny neshody hodnot ETag .

If-Match Pokud v požadavku ve verzi 2011-08-08-18 nebo novější chybí hlavička, provede služba operaci Vložit nebo nahradit entitu (upsert). Ve verzích starších než 2011-08-18 vrátí služba stavový kód 400 (chybný požadavek).

Table Storage neuchovává null hodnoty vlastností. Zadání vlastnosti s null hodnotou odpovídá vynechání této vlastnosti v požadavku.

Poznámka

Pokud chcete odebrat vlastnost z entity, můžete využít buď chování.

Pokud chcete explicitně zadat vlastnost, zadejte příslušný OData datový typ nastavením m:type atributu v definici vlastnosti v informačním kanálu Atom. Další informace o zadávání vlastností naleznete v tématu Vložení a aktualizace entit.

Každá aplikace, která může autorizovat a odeslat požadavek HTTP PUT , může aktualizovat entitu.

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

Viz také

Sloučit entitu
Autorizace požadavků do Služby Azure Storage
Nastavení hlaviček verze datové služby OData
Kódy stavu a chyb
Kódy chyb služby Table Storage