Entitas Penggabungan

Operasi memperbarui Merge Entity entitas yang ada dengan memperbarui properti entitas. Operasi ini tidak menggantikan entitas yang ada, seperti yang dilakukan operasi Perbarui Entitas .

Minta

Anda dapat membuat Merge Entity permintaan sebagai berikut. HTTPS disarankan. Ganti myaccount dengan nama akun penyimpanan Anda, dan mytable dengan nama tabel Anda. Ganti myPartitionKey dan myRowKey dengan nama kunci partisi dan kunci baris yang mengidentifikasi entitas yang akan diperbarui.

Metode Meminta URI Versi HTTP
MERGE https://myaccount.table.core.windows.net/mytable(PartitionKey='myPartitionKey', RowKey='myRowKey') HTTP/1.1

Alamat entitas yang akan diperbarui dapat mengambil sejumlah formulir pada URI permintaan. Lihat Protokol OData untuk detail tambahan.

URI layanan penyimpanan yang ditimulasi

Saat Anda membuat permintaan terhadap layanan penyimpanan yang ditimulasi, tentukan nama host emulator dan port Azure Table Storage sebagai 127.0.0.1:10002, diikuti dengan nama akun penyimpanan yang ditimulasi.

Metode Meminta URI Versi HTTP
MERGE http://127.0.0.1:10002/devstoreaccount1/mytable(PartitionKey='myPartitionKey', RowKey='myRowKey') HTTP/1.1

Table Storage di emulator penyimpanan berbeda dari Azure Table Storage dalam beberapa cara. Untuk informasi selengkapnya, lihat Perbedaan antara emulator penyimpanan dan layanan Azure Storage.

Parameter URI

Anda dapat menentukan parameter tambahan berikut pada URI permintaan.

Parameter Deskripsi
timeout Opsional. Parameter timeout dinyatakan dalam hitung detik. Untuk informasi selengkapnya, lihat Mengatur batas waktu untuk operasi Table Storage.

Header permintaan

Tabel berikut ini menjelaskan header permintaan yang diperlukan dan opsional.

Meminta kop Deskripsi
Authorization Wajib diisi. Menentukan skema otorisasi, nama akun, dan tanda tangan. Untuk informasi selengkapnya, lihat Mengotorisasi permintaan ke Azure Storage.
Date atau x-ms-date Wajib diisi. Menentukan Waktu Universal Terkoordinasi (UTC) untuk permintaan tersebut. Untuk informasi selengkapnya, lihat Mengotorisasi permintaan ke Azure Storage.
x-ms-version Pilihan. Menentukan versi operasi yang akan digunakan untuk permintaan ini. Untuk informasi selengkapnya, lihat Penerapan versi untuk layanan Azure Storage.
Content-Type Wajib diisi. Menentukan jenis konten payload. Nilai yang mungkin adalah application/atom+xml dan application/json.

Untuk informasi selengkapnya tentang jenis konten yang valid, lihat Format payload untuk operasi Table Storage.
Content-Length Wajib diisi. Panjang isi permintaan.
If-Match Wajib diisi. Klien dapat menentukan ETag untuk entitas pada permintaan, untuk membandingkan dengan yang ETag dikelola oleh layanan untuk tujuan konkurensi optimis. Operasi pembaruan akan dilakukan hanya jika ETag yang dikirim oleh klien cocok dengan nilai yang dikelola oleh server. Kecocokan ini menunjukkan bahwa entitas belum dimodifikasi sejak diambil oleh klien.

Untuk memaksa pembaruan tanpa syarat, atur If-Match ke karakter kartubebas (*).
x-ms-client-request-id Opsional. Menyediakan nilai buram yang dihasilkan klien dengan batas karakter 1 kibibyte (KiB) yang dicatat dalam log saat pengelogan dikonfigurasi. Kami sangat menyarankan Anda menggunakan header ini untuk menghubungkan aktivitas sisi klien dengan permintaan yang diterima server. Untuk informasi selengkapnya, lihat Memantau Azure Table Storage.

Isi permintaan

Operasi Merge Entity mengirimkan entitas untuk diperbarui sebagai OData entitas, yang dapat berupa JSON atau umpan Atom. Untuk informasi selengkapnya, lihat Menyisipkan dan memperbarui entitas.

Respons

Respons mencakup kode status HTTP dan sekumpulan header respons.

Kode status

Operasi yang berhasil mengembalikan kode status 204 (Tanpa Konten). Untuk informasi tentang kode status, lihat Kode status dan kesalahan serta kode kesalahan Table Storage.

Header respons

Respons untuk operasi ini mencakup header berikut. Respons juga dapat mencakup header HTTP standar tambahan. Semua header standar sesuai dengan spesifikasi protokol HTTP/1.1.

Header respons Deskripsi
ETag ETag untuk entitas.
x-ms-request-id Header ini secara unik mengidentifikasi permintaan yang dibuat, dan dapat digunakan untuk memecahkan masalah permintaan. Untuk informasi selengkapnya, lihat Pemecahan masalah operasi API.
x-ms-version Menunjukkan versi Table Storage yang digunakan untuk menjalankan permintaan. Header ini dikembalikan untuk permintaan yang dibuat terhadap versi 2009-09-19 dan yang lebih baru.
Date Nilai tanggal/waktu UTC yang menunjukkan waktu di mana respons dimulai. Layanan menghasilkan nilai ini.
x-ms-client-request-id Anda dapat menggunakan header ini untuk memecahkan masalah permintaan dan respons terkait. Nilai header ini sama dengan nilai x-ms-client-request-id header, jika ada dalam permintaan. Nilainya paling banyak 1024 karakter ASCII yang terlihat. x-ms-client-request-id Jika header tidak ada dalam permintaan, header ini tidak akan ada dalam respons.

Isi Respons

Tidak ada.

Respons sampel

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  

Authorization

Pemilik akun dapat melakukan operasi ini. Selain itu, siapa pun dengan tanda tangan akses bersama yang memiliki izin untuk melakukan operasi ini dapat melakukannya.

Keterangan

Table Storage tidak membuat null nilai untuk properti persisten. Menentukan properti dengan nilai setara dengan null menghilangkan properti tersebut dalam permintaan. Hanya properti dengan nilai non-yangnull diperbarui oleh Merge Entity operasi.

Anda tidak dapat menghapus properti dengan Merge Entity operasi. Jika Anda perlu melakukan ini, ganti entitas dengan memanggil operasi Perbarui Entitas .

Saat menggabungkan entitas, Anda harus menentukan PartitionKey properti sistem dan RowKey sebagai bagian dari operasi penggabungan.

ETag Entitas menyediakan konkurensi optimis default untuk operasi penggabungan. Nilainya ETag buram, dan tidak boleh dibaca atau diandalkan. Sebelum operasi penggabungan terjadi, Table Storage memverifikasi bahwa nilai entitas saat ini ETag identik dengan nilai yang ETag disertakan dengan permintaan di If-Match header. Jika nilainya identik, Table Storage menentukan bahwa entitas belum dimodifikasi sejak diambil, dan operasi penggabungan berlanjut.

Jika entitas ETag berbeda dari yang ditentukan dengan permintaan penggabungan, operasi penggabungan gagal dengan kode status 412 (Prasyarat Gagal). Kesalahan ini menunjukkan bahwa entitas telah diubah di server sejak diambil. Untuk mengatasi kesalahan ini, ambil entitas dan terungkap kembali permintaan.

Untuk memaksa operasi penggabungan tanpa syarat, atur nilai If-Match header ke karakter kartubebas (*) pada permintaan. Meneruskan nilai ini ke operasi akan menggantikan konkurensi optimis, default, dan mengabaikan ketidakcocokan dalam ETag nilai.

If-Match Jika header hilang dari permintaan dalam versi 2011-08-18 dan yang lebih baru, maka layanan melakukan operasi Sisipkan Atau Gabungkan Entitas (upsert). Dalam versi sebelum 2011-08-18, layanan mengembalikan kode status 400 (Permintaan Buruk).

Aplikasi apa pun yang dapat mengotorisasi dan mengirim HTTP MERGE permintaan dapat menggabungkan entitas. Untuk informasi selengkapnya tentang membuat kueri dengan menggunakan HTTP MERGE, lihat Menambahkan, memodifikasi, dan menghapus entitas.

Untuk informasi tentang melakukan operasi penggabungan batch, lihat Melakukan transaksi grup entitas.

Lihat juga

Perbarui Entitas
Mengotorisasi permintaan ke Azure Storage
Mengatur header versi layanan data OData
Status dan kode galat
Kode kesalahan Table Storage