Share via


Varlığı Birleştir

İşlem, Merge Entity varlığın özelliklerini güncelleştirerek var olan bir varlığı güncelleştirir. Varlığı Güncelleştir işleminin yaptığı gibi bu işlem mevcut varlığın yerini almaz.

İstek

İsteği aşağıdaki gibi oluşturabilirsiniz Merge Entity . HTTPS önerilir. myaccount değerini depolama hesabınızın adıyla, mytable değerini ise 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ü
MERGE 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ünmüş depolama hizmeti URI'si

Öykünülen 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ü
MERGE http://127.0.0.1:10002/devstoreaccount1/mytable(PartitionKey='myPartitionKey', RowKey='myRowKey') HTTP/1.1

Depolama öykünücüsü içindeki 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 isteklerini 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 isteklerini 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 tutulan ile karşılaştırmak ETag üzere istekteki varlık için öğesini belirtebilirETag. Güncelleştirme işlemi yalnızca istemci tarafından gönderilen sunucu tarafından tutulan değerle eşleşiyorsa ETag gerçekleştirilir. Bu eşleşme, varlığın istemci tarafından alındığından beri değiştirilmediğini gösterir.

Koşulsuz güncelleştirmeye 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 kibibaytlık (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, Merge Entity varlığı bir varlık olarak güncelleştirilecek şekilde OData gönderir ve bu bir JSON veya Atom akışı olabilir. Daha fazla bilgi için bkz. Varlık ekleme ve güncelleştirme.

Yanıt

Yanıt bir HTTP durum kodu ve yanıt üst bilgileri kümesi 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ı ile Tablo Depolama hata kodları.

Yanıt üst bilgileri

Bu işlemin 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 isteğin 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 İstekler ve karşılık gelen yanıtlarla ilgili sorunları 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 1024 görünür ASCII karakterdir. x-ms-client-request-id Üst bilgi istekte 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  
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  

Yetkilendirme

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

Açıklamalar

Tablo Depolama özellikleri için değerleri kalıcı hale getirmez null . Bir değere sahip bir null özellik belirtmek, istekte bu özelliğin atlanmasıyla eşdeğerdir. Yalnızca değer olmayannull özellikler işlem tarafından Merge Entity güncelleştirilir.

Bir işlemle Merge Entity özelliği kaldıramazsınız. Bunu yapmanız gerekiyorsa Varlığı Güncelleştir işlemini çağırarak varlığı değiştirin.

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

Bir varlığın ETag varlığı birleştirme işlemleri için varsayılan, iyimser eşzamanlılık sağlar. Değer ETag opaktır ve okunmamalıdır veya bu değere dayanılmamalıdır. Birleştirme işlemi gerçekleşmeden önce Tablo Depolama, varlığın geçerli ETag değerinin üst bilgideki If-Match istekte yer alan 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 birleştirme işlemi devam eder.

Varlığın ETag birleştirme isteğiyle belirtilenden farklı olması durumunda birleştirme işlemi 412 (Önkoşul Başarısız Oldu) durum koduyla başarısız olur. Bu hata, varlığın sunucuda alındıktan sonra değiştirildiğini gösterir. Bu hatayı çözmek için varlığı alın ve isteği yeniden oluşturun.

Koşulsuz birleş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 ve sonraki sürümlerde istekte üst bilgi eksikse, hizmet bir Insert Or Merge Entity (upsert) işlemi gerçekleştirir. 2011-08-18 öncesi sürümlerde hizmet 400 (Hatalı İstek) durum kodunu döndürür.

Bir isteği yetkilendirilebilen ve gönderebilen tüm uygulamalar bir HTTP MERGE varlığı birleştirebilir. kullanarak HTTP MERGEsorgu oluşturma hakkında daha fazla bilgi için bkz. Varlık ekleme, değiştirme ve silme.

Toplu birleştirme işlemlerini gerçekleştirme hakkında bilgi için bkz. Varlık grubu işlemleri gerçekleştirme.

Ayrıca bkz.

Varlığı Güncelleş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ı