Varlığı Güncelleştir

İşlem, Update Entity bir tablodaki mevcut varlığı güncelleştirir. bu Update Entity işlem tüm varlığın yerini alır ve işlemi kullanarak özellikleri kaldırabilirsiniz.

İstek

İsteği aşağıdaki gibi oluşturabilirsiniz Update Entity . HTTPS önerilir. myaccount değerini depolama hesabınızın adıyla ve mytable tablonuzun adıyla değiştirin. myPartitionKey ve myRowKey değerlerini güncelleştirilecek varlığı tanımlayan bölüm anahtarının ve satır anahtarının adıyla değiştirin.

Yöntem İstek URI'si HTTP sürümü
PUT https://myaccount.table.core.windows.net/mytable(PartitionKey='myPartitionKey', RowKey='myRowKey') HTTP/1.1

Güncelleştirilecek varlığın adresi, istek URI'sinde bir dizi form alabilir. Ek ayrıntılar için OData Protokolü'ne bakın.

Öykünülmüş depolama hizmeti URI'si

Öykünülmüş depolama hizmetine yönelik bir istekte bulunurken öykünücü konak adını ve Azure Tablo Depolama bağlantı noktasını olarak 127.0.0.1:10002ve ardından öykünülen depolama hesabı adını belirtin.

Yöntem İstek URI'si HTTP sürümü
PUT http://127.0.0.1:10002/devstoreaccount1/mytable(PartitionKey='myPartitionKey', RowKey='myRowKey') HTTP/1.1

Depolama öykünücüsündeki Tablo Depolama, Azure Tablo Depolama'dan çeşitli yollarla farklıdır. Daha fazla bilgi için bkz. Depolama öykünücüsü ile Azure Depolama hizmetleri arasındaki farklar.

URI parametreleri

İstek URI'sinde aşağıdaki ek parametreleri belirtebilirsiniz.

Parametre Açıklama
timeout İsteğe bağlı. timeout parametresi saniye cinsinden ifade edilir. Daha fazla bilgi için bkz . Tablo Depolama işlemleri için zaman aşımlarını ayarlama.

İstek üst bilgileri

Aşağıdaki tabloda gerekli ve isteğe bağlı istek üst bilgileri açıklanmaktadır.

İstek üst bilgisi Açıklama
Authorization Gereklidir. Yetkilendirme düzenini, hesap adını ve imzayı belirtir. Daha fazla bilgi için bkz. Azure Depolama'ya istekleri yetkilendirme.
Date veya x-ms-date Gereklidir. İstek için Eşgüdümlü Evrensel Saat (UTC) biçimini belirtir. Daha fazla bilgi için bkz. Azure Depolama'ya istekleri yetkilendirme.
x-ms-version İsteğe bağlı. Bu istek için kullanılacak işlemin sürümünü belirtir. Daha fazla bilgi için bkz. Azure Depolama hizmetleri için sürüm oluşturma.
Content-Type Gereklidir. Yükün içerik türünü belirtir. Olası değerler ve application/jsondeğerleridirapplication/atom+xml.

Geçerli içerik türleri hakkında daha fazla bilgi için bkz. Tablo Depolama işlemleri için yük biçimi.
Content-Length Gereklidir. İstek gövdesinin uzunluğu.
If-Match Gereklidir. İstemci, iyimser eşzamanlılık amacıyla hizmet tarafından tutulanla karşılaştırmak ETag üzere istekteki varlık için öğesini belirtebilirETag. Güncelleştirme işlemi yalnızca ETag istemci tarafından gönderilen sunucu tarafından tutulan değerle eşleştiğinde gerçekleştirilir. Bu eşleşme, varlığın istemci tarafından alındığından beri değiştirilmediğini gösterir.

Koşulsuz bir güncelleştirmeyi zorlamak için joker karakter (*) olarak ayarlayın If-Match .
x-ms-client-request-id İsteğe bağlı. Günlüğe kaydetme yapılandırıldığında günlüklere kaydedilen 1 kibibayt (KiB) karakter sınırıyla istemci tarafından oluşturulan, opak bir değer sağlar. İstemci tarafı etkinlikleriyle sunucunun aldığı istekler arasında bağıntı sağlamak için bu üst bilgiyi kullanmanızı kesinlikle öneririz. Daha fazla bilgi için bkz. Azure Tablo Depolama'yı izleme.

İstek gövdesi

İşlem, Update Entity varlığı güncelleştirilecek şekilde OData JSON veya Atom akışı olabilecek bir varlık kümesi olarak gönderir. Daha fazla bilgi için bkz. Varlık ekleme ve güncelleştirme.

Not

JSON önerilen yük biçimidir ve sürüm 2015-12-11 ve üzeri için desteklenen tek biçimdir.

Örnek istek

JSON (sürüm 2013-08-15 ve üzeri)

Bu örnek örnek istek URI'sini, ilişkili istek üst bilgilerini ve JSON akışı için istek gövdesini gösterir.

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"  
}  

Atom akışı (2015-12-11 öncesi sürümler)

Bu örnek örnek istek URI'sini, ilişkili istek üst bilgilerini ve Bir Atom akışı için istek gövdesini gösterir.

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>  

Yanıt

Yanıt bir HTTP durum kodu ve bir dizi yanıt üst bilgisi içerir.

Durum kodu

Başarılı bir işlem 204 (İçerik Yok) durum kodunu döndürür. Durum kodları hakkında bilgi için bkz . Durum ve hata kodları ve Tablo Depolama hata kodları.

Yanıt üst bilgileri

Yanıt aşağıdaki üst bilgileri içerir. Yanıt ek, standart HTTP üst bilgileri de içerebilir. Tüm standart üst bilgiler HTTP/1.1 protokol belirtimine uygundur.

Yanıt üst bilgisi Description
ETag ETag Varlığın için.
x-ms-request-id Bu üst bilgi, yapılan isteği benzersiz olarak tanımlar ve istek sorunlarını gidermek için kullanılabilir. Daha fazla bilgi için bkz . API işlemleriyle ilgili sorunları giderme.
x-ms-version İsteği çalıştırmak için kullanılan Tablo Depolama sürümünü gösterir. Bu üst bilgi, 2009-09-19 ve sonraki sürümlerde yapılan istekler için döndürülür.
Date Yanıtın başlatıldığı saati gösteren UTC tarih/saat değeri. Hizmet bu değeri oluşturur.
x-ms-client-request-id İsteklerde ve karşılık gelen yanıtlarda sorun gidermek için bu üst bilgiyi kullanabilirsiniz. Bu üst bilginin değeri, istekte varsa üst bilginin değerine x-ms-client-request-id eşittir. Değer en fazla 1.024 görünür ASCII karakterdir. İstekte x-ms-client-request-id üst bilgi yoksa, yanıtta bu üst bilgi bulunmaz.

Yanıt gövdesi

Yok.

Örnek yanıt

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  

Yetkilendirme

Hesap sahibi bu işlemi gerçekleştirebilir. Ayrıca, paylaşılan erişim imzasına sahip olan ve bu işlemi gerçekleştirme izni olan herkes bunu yapabilir.

Açıklamalar

Bir varlığı güncelleştirdiğinizde, güncelleştirme işleminin PartitionKey bir parçası olarak ve RowKey sistem özelliklerini belirtmeniz gerekir.

Bir varlığın ETag varlığı, güncelleştirme işlemleri için varsayılan iyimser eşzamanlılık sağlar. ETag Değer opaktır ve okunmamalıdır veya bu değere dayanılmamalıdır. Bir güncelleştirme işlemi gerçekleşmeden önce, Tablo Depolama varlığın geçerli ETag değerinin üst bilgideki If-Match güncelleştirme isteğine dahil edilen değerle aynı ETag olduğunu doğrular. Değerler aynıysa, Tablo Depolama varlığın alındığından beri değiştirilmediğini belirler ve güncelleştirme işlemi devam eder.

Varlığın ETag değerleri güncelleştirme isteğiyle belirtilenden farklıysa güncelleştirme işlemi 412 durum koduyla başarısız olur (Önkoşul Başarısız oldu). Bu hata, varlığın alındığından bu yana sunucuda değiştirildiğini gösterir. Bu hatayı düzeltmek için varlığı yeniden alın ve isteği yeniden çalıştırın.

Koşulsuz güncelleştirme işlemini zorlamak için, üst bilginin değerini If-Match istekte joker karakter (*) olarak ayarlayın. Bu değerin işleme geçirilmesi varsayılan iyimser eşzamanlılığı geçersiz kılar ve değerlerdeki ETag uyuşmazlıkları yoksayar.

If-Match 2011-08-18 veya sonraki bir sürümdeki istekte üst bilgi eksikse, hizmet bir Varlık Ekle veya Değiştir (upsert) işlemi gerçekleştirir. 2011-08-18'den önceki sürümlerde hizmet, 400 (Hatalı İstek) durum kodunu döndürür.

Tablo Depolama özellikleri için değerleri kalıcı null yapmaz. Bir değere sahip bir null özellik belirtmek, istekte bu özelliğin atlanmasıyla eşdeğerdir.

Not

Bir özelliği varlıktan kaldırmak için her iki davranıştan da yararlanabilirsiniz.

Bir özelliği açıkça yazmak için, Atom akışındaki özellik tanımı içinde özniteliğini ayarlayarak m:type uygun OData veri türünü belirtin. Yazma özellikleri hakkında daha fazla bilgi için bkz. Varlıkları ekleme ve güncelleştirme.

HTTP PUT isteği yetkilendirilebilen ve gönderebilen tüm uygulamalar bir varlığı güncelleştirebilir.

Toplu güncelleştirme işlemlerini gerçekleştirme hakkında bilgi için bkz. Varlık grubu işlemlerini gerçekleştirme.

Ayrıca bkz.

Varlığı Birleştir
Azure Depolama'ya yönelik istekleri yetkilendirme
OData veri hizmeti sürüm üst bilgilerini ayarlama
Durum ve hata kodları
Tablo Depolama hata kodları