Scalanie jednostki

Operacja Merge Entity aktualizuje istniejącą jednostkę, aktualizując jej właściwości. Ta operacja nie zastępuje istniejącej jednostki, tak jak operacja Aktualizuj jednostkę.

Żądanie

Żądanie Merge Entity może zostać skonstruowane w następujący sposób. Protokół HTTPS jest zalecany. Zastąp myaccount nazwą konta magazynu nazwą tabeli, a wartości mytable myPartitionKey i myRowKey nazwą klucza partycji i klucza wiersza identyfikującą 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, która ma zostać zaktualizowana, może przyjmować wiele formularzy w identyfikatorze URI żądania. Aby uzyskać dodatkowe informacje, zobacz protokół OData Protocol.

Emulowany adres URI usługi magazynu

Podczas tworzenia żądania względem emulowanej usługi magazynu określ nazwę hosta emulatora i port usługi table jako , a następnie 127.0.0.1:10002 nazwę emulowanej 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 Service w emulatorze magazynu różni się od usługi Windows® Azure™ table na kilka sposobów. Aby uzyskać więcej informacji, zobacz Differences Between the Storage Emulator and Azure Storage Services (Różnice między usługami Azure Storage Emulator i Azure Storage Services).

Parametry identyfikatora URI

W żądaniu URI można określić następujące dodatkowe parametry.

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

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 Versioning for the Azure Storage Services(Wersje usług Azure Storage Services).
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 Service.
Content-Length Wymagane. Długość treści żądania.
If-Match Wymagane. Klient może określić element ETag dla jednostki w żądaniu, aby porównać go z elementem ETag utrzymywanym przez usługę na potrzeby optymistycznej współbieżności. Operacja aktualizacji będzie wykonywana tylko wtedy, gdy element ETag wysłany przez klienta jest taki, jak wartość utrzymywana przez serwer, co oznacza, że jednostka nie została zmodyfikowana od czasu pobrania przez klienta.

Aby wymusić aktualizację bezwarunkową, If-Match ustaw symbol wieloznaczny (*).
x-ms-client-request-id Opcjonalny. Zapewnia wygenerowaną przez klienta nieprzezroczystą wartość z limitem znaków 1 KiB, który jest rejestrowany w dziennikach analizy, gdy jest włączone rejestrowanie analizy magazynu. Używanie tego nagłówka jest wysoce zalecane do korelowania działań po stronie klienta z żądaniami odebranymi przez serwer. Aby uzyskać więcej informacji, zobacz About Storage Analytics Logging and Azure Logging: Using Logs to Track Storage Requests (Informacje o rejestrowaniu analizy danych i rejestrowaniu na platformie Azure: używanie dzienników do śledzenia żądań Storage danych).

Treść żądania

Operacja wysyła jednostkę do zaktualizowania jako jednostkę OData, która może być kanałem informacyjnym Merge Entity 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 tabel.

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 unikatowo identyfikuje żądanie, które zostało wykonane, i może służyć do rozwiązywania problemów z żądaniem. Aby uzyskać więcej informacji, zobacz Troubleshooting API Operations (Rozwiązywanie problemów z operacjami interfejsu API).
x-ms-version Wskazuje wersję usługi Table Service używaną do wykonania żądania. Ten nagłówek jest zwracany w przypadku żądań względem wersji 2009-09-19 i nowszych.
Date Wartość daty/czasu UTC wygenerowana przez usługę, która wskazuje czas, o której została zainicjowana odpowiedź.
x-ms-client-request-id Ten nagłówek może służyć do rozwiązywania problemów z żądaniami i odpowiadającymi odpowiedziami. Wartość tego nagłówka jest równa wartości nagłówka, jeśli jest obecny w żądaniu, a wartość jest co najwyżej 1024 widocznych znaków x-ms-client-request-id ASCII. Jeśli nagłówek x-ms-client-request-id nie jest obecny 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

Tę operację może wykonać właściciel konta i każda osoba mająca sygnaturę dostępu współdzielona, która ma uprawnienia do wykonania tej operacji.

Uwagi

Usługa Table Service nie utrwala null wartości właściwości. Określenie właściwości z wartością jest równoznaczne z null pominięciem tej właściwości w żądaniu. Tylko właściwości z wartościami innymi null niż zostaną zaktualizowane przez Merge Entity operację .

Właściwości nie można usunąć za pomocą Merge Entity operacji . Aby usunąć właściwość z jednostki, zastąp jednostkę, wywołując operację Aktualizuj jednostkę.

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

Element ETag jednostki zapewnia domyślną optymistyczny 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 Service sprawdza, czy bieżąca wartość elementu ETag jednostki jest identyczna z wartością elementu ETag dołączona do żądania w If-Match nagłówku. Jeśli wartości są identyczne, usługa Table Service określa, że jednostka nie została zmodyfikowana od czasu jej pobrania, a operacja scalania będzie kontynuowana.

Jeśli element ETag jednostki różni się od elementu 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, ponownie pobierz jednostkę i ponownie wyślij żądanie.

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

Jeśli brakuje nagłówka w żądaniu w wersjach If-Match 2011-08-18 i nowszych, usługa wykonuje operację wstawiania lub scalania jednostki (upsert). W wersjach wcześniejszych niż 2011-08-18 usługa zwraca kod stanu 400 (Złe żądanie).

Każda aplikacja, która może autoryzować i wysłać żądanie HTTP MERGE, może scalić jednostkę. Aby uzyskać więcej informacji na temat konstruowania zapytania przy użyciu funkcji HTTP MERGE, zobacz Jak dodawać, modyfikować i usuwać jednostki.

Aby uzyskać informacje o wykonywaniu operacji scalania wsadowego, zobacz Performing Entity Group Transactions (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 Service