Sdílet prostřednictvím


Aktualizace entity

Operace Update Entity aktualizuje existující entitu v tabulce. Operace Update Entity nahradí celou entitu a můžete ji použít k odebrání vlastností.

Žádost

Požadavek můžete sestavit 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é identifikují 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, 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
PUT http://127.0.0.1:10002/devstoreaccount1/mytable(PartitionKey='myPartitionKey', RowKey='myRowKey') HTTP/1.1

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

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 na požadavku parametr , který bude porovnávat ETag s objekty udržovanými 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 Update Entity odešle entitu, která se má aktualizovat, jako sadu OData entit, což může být json nebo informační kanál Atom. Další informace najdete 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 dřívější než 11. 12. 2015)

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ématech Kódy stavů a chyb a Kódy chyb služby Table Storage.

Hlavičky odpovědi

Odpověď 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ě 1 024 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  
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. 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

Při aktualizaci entity musíte jako součást operace aktualizace zadat PartitionKey systémové vlastnosti a RowKey .

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

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

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 případné neshody v ETag hodnotách.

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

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

Poznámka

K odebrání vlastnosti z entity můžete využít obě možnosti 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í najdete v tématu Vkládání a aktualizace entit.

Entitu může aktualizovat jakákoli aplikace, která může autorizovat a odeslat požadavek HTTP PUT .

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 verzí datové služby OData
Stavové kódy a kódy chyb
Kódy chyb služby Table Storage