Scal jednostkę

Operacja Merge Entity aktualizuje istniejącą jednostkę, aktualizując właściwości jednostki. Ta operacja nie zastępuje istniejącej jednostki, ponieważ operacja Aktualizuj jednostkę jest wykonywana.

Żądanie

Żądanie można skonstruować Merge Entity w następujący sposób. Zalecane jest użycie protokołu HTTPS. Zastąp ciąg myaccount nazwą konta magazynu, a ciąg mytable nazwą tabeli. Zastąp wartości myPartitionKey i myRowKey nazwą klucza partycji i klucza wiersza identyfikującego jednostkę do zaktualizowania.

Metoda Identyfikator URI żądania Wersja PROTOKOŁU HTTP
MERGE https://myaccount.table.core.windows.net/mytable(PartitionKey='myPartitionKey', RowKey='myRowKey') HTTP/1.1

Adres jednostki do zaktualizowania może przyjmować wiele formularzy w identyfikatorze URI żądania. Aby uzyskać więcej informacji, zobacz Protokół OData .

Identyfikator URI usługi magazynu emulowanego

Po wysłaniu żądania względem emulowanej usługi magazynu określ nazwę hosta emulatora i port usługi Azure Table Storage jako 127.0.0.1:10002, a następnie nazwę emulowanego konta magazynu.

Metoda Identyfikator URI żądania Wersja PROTOKOŁU HTTP
MERGE http://127.0.0.1:10002/devstoreaccount1/mytable(PartitionKey='myPartitionKey', RowKey='myRowKey') HTTP/1.1

Usługa Table Storage w emulatorze magazynu różni się od usługi Azure Table Storage na kilka sposobów. Aby uzyskać więcej informacji, zobacz Różnice między emulatorem magazynu i usługami Azure Storage.

Parametry identyfikatora URI

Dla identyfikatora URI żądania można określić następujące dodatkowe parametry.

Parametr Opis
timeout Opcjonalny. Parametr jest wyrażony timeout w sekundach. Aby uzyskać więcej informacji, zobacz Ustawianie limitów czasu dla operacji usługi Table Storage.

Nagłówki żądań

W poniższej tabeli opisano wymagane i opcjonalne nagłówki żądań.

Nagłówek żądania Opis
Authorization Wymagane. Określa schemat autoryzacji, nazwę konta i podpis. Aby uzyskać więcej informacji, zobacz Autoryzowanie żądań do usługi Azure Storage.
Date lub x-ms-date Wymagane. Określa dla żądania godzinę w formacie uniwersalnego czasu koordynowanego (UTC). Aby uzyskać więcej informacji, zobacz Autoryzowanie żądań do usługi Azure Storage.
x-ms-version Opcjonalny. Określa wersję operacji do użycia dla tego żądania. Aby uzyskać więcej informacji, zobacz Przechowywanie wersji dla usług Azure Storage.
Content-Type Wymagane. Określa typ zawartości ładunku. Możliwe wartości to application/atom+xml i application/json.

Aby uzyskać więcej informacji na temat prawidłowych typów zawartości, zobacz Format ładunku dla operacji usługi Table Storage.
Content-Length Wymagane. Długość treści żądania.
If-Match Wymagane. Klient może określić ETag wartość dla jednostki w żądaniu, aby porównać go z ETag obsługiwanym przez usługę celem optymistycznej współbieżności. Operacja aktualizacji zostanie wykonana tylko wtedy, gdy ETag wysyłany przez klienta jest zgodny z wartością obsługiwaną przez serwer. To dopasowanie oznacza, że jednostka nie została zmodyfikowana, ponieważ została pobrana przez klienta.

Aby wymusić aktualizację bezwarunkową, ustaw If-Match symbol wieloznaczny (*).
x-ms-client-request-id Opcjonalny. Zapewnia nieprzezroczystą wartość wygenerowaną przez klienta z limitem znaków 1-kibibyte (KiB) rejestrowanym w dziennikach podczas konfigurowania rejestrowania. Zdecydowanie zalecamy używanie tego nagłówka do korelowania działań po stronie klienta z żądaniami odbieranymi przez serwer. Aby uzyskać więcej informacji, zobacz Monitorowanie usługi Azure Table Storage.

Treść żądania

Operacja Merge Entity wysyła jednostkę do zaktualizowania jako OData jednostki, która może być źródłem danych JSON lub Atom. Aby uzyskać więcej informacji, zobacz Wstawianie i aktualizowanie jednostek.

Reakcja

Odpowiedź zawiera kod stanu HTTP i zestaw nagłówków odpowiedzi.

Kod stanu

Pomyślna operacja zwraca kod stanu 204 (Brak zawartości). Aby uzyskać informacje o kodach stanu, zobacz Kody stanu i błędów oraz Kody błędów usługi Table Storage.

Nagłówki odpowiedzi

Odpowiedź na tę operację zawiera następujące nagłówki. Odpowiedź może również zawierać dodatkowe standardowe nagłówki HTTP. Wszystkie standardowe nagłówki są zgodne ze specyfikacją protokołu HTTP/1.1.

Nagłówek odpowiedzi Opis
ETag Element ETag dla jednostki.
x-ms-request-id Ten nagłówek jednoznacznie identyfikuje wykonane żądanie i może służyć do rozwiązywania problemów z żądaniem. Aby uzyskać więcej informacji, zobacz Rozwiązywanie problemów z operacjami interfejsu API.
x-ms-version Wskazuje wersję usługi Table Storage używaną do uruchomienia żądania. Ten nagłówek jest zwracany w przypadku żądań wysyłanych w wersji 2009-09-19 lub nowszej.
Date Wartość daty/godziny UTC wskazująca godzinę, o której zainicjowano odpowiedź. Usługa generuje tę wartość.
x-ms-client-request-id Ten nagłówek służy do rozwiązywania problemów z żądaniami i odpowiadającymi im odpowiedziami. Wartość tego nagłówka jest równa wartości nagłówka x-ms-client-request-id , jeśli jest obecna w żądaniu. Wartość jest najwyżej 1024 widocznymi znakami ASCII. x-ms-client-request-id Jeśli nagłówek nie istnieje w żądaniu, ten nagłówek nie będzie obecny w odpowiedzi.

Treść odpowiedzi

Brak.

Przykładowa odpowiedź

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  

Autoryzacja

Właściciel konta może wykonać tę operację. Ponadto każda osoba z sygnaturą dostępu współdzielonego, która ma uprawnienia do wykonania tej operacji, może to zrobić.

Uwagi

Usługa Table Storage nie sprawia, że wartości właściwości są null trwałe. Określenie właściwości z wartością null jest równoważne pomijaniu tej właściwości w żądaniu. Operacja aktualizuje tylko właściwości z wartościami niebędącyminull wartościami Merge Entity .

Nie można usunąć właściwości za pomocą Merge Entity operacji. Jeśli musisz to zrobić, zastąp jednostkę przez wywołanie operacji Aktualizuj jednostkę.

Podczas scalania jednostki należy określić PartitionKey właściwości systemu i RowKey w ramach operacji scalania.

ETag Jednostka zapewnia domyślną, optymistyczną współbieżność dla operacji scalania. Wartość ETag jest nieprzezroczysta i nie powinna być odczytywana ani polegana. Przed rozpoczęciem operacji scalania usługa Table Storage sprawdza, czy bieżąca ETag wartość jednostki jest identyczna ETag z wartością dołączoną do żądania w nagłówku If-Match . Jeśli wartości są identyczne, usługa Table Storage określa, że jednostka nie została zmodyfikowana od czasu jej pobrania, a operacja scalania jest kontynuowana.

Jeśli jednostka ETag różni się od określonego w żądaniu scalania, operacja scalania kończy się niepowodzeniem z kodem stanu 412 (Niepowodzenie warunku wstępnego). Ten błąd wskazuje, że jednostka została zmieniona na serwerze od czasu jej pobrania. Aby rozwiązać ten błąd, pobierz jednostkę i ponownie prześlij żądanie.

Aby wymusić bezwarunkową operację scalania, ustaw wartość If-Match nagłówka na symbol wieloznaczny (*) na żądanie. Przekazanie tej wartości do operacji spowoduje zastąpienie domyślnej, optymistycznej współbieżności i zignorowanie wszelkich niezgodności wartości ETag .

If-Match Jeśli w żądaniu brakuje nagłówka w wersji 2011-08-18 lub nowszej, usługa wykonuje operację Insert Or Merge Entity (upsert). W wersjach wcześniejszych niż 2011-08-18 usługa zwraca kod stanu 400 (nieprawidłowe żądanie).

Każda aplikacja, która może autoryzować i wysyłać HTTP MERGE żądanie, może scalić jednostkę. Aby uzyskać więcej informacji na temat konstruowania zapytania przy użyciu programu HTTP MERGE, zobacz Dodawanie, modyfikowanie i usuwanie jednostek.

Aby uzyskać informacje na temat wykonywania operacji scalania wsadowego, zobacz Wykonywanie transakcji grupy jednostek.

Zobacz też

Aktualizowanie jednostki
Autoryzowanie żądań do usługi Azure Storage
Ustawianie nagłówków wersji usługi danych OData
Kody stanu i błędów
Kody błędów usługi Table Storage