Bagikan melalui


Perbarui Entitas

Operasi memperbarui Update Entity entitas yang ada dalam tabel. Operasi Update Entity menggantikan seluruh entitas, dan Anda dapat menggunakan operasi untuk menghapus properti.

Minta

Anda dapat membuat Update 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
PUT 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
PUT 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 dibandingkan dengan yang ETag dikelola oleh layanan untuk tujuan konkurensi optimis. Operasi pembaruan 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 Update Entity mengirimkan entitas untuk diperbarui sebagai OData set entitas, yang dapat berupa JSON atau umpan Atom. Untuk informasi selengkapnya, lihat Menyisipkan dan memperbarui entitas.

Catatan

JSON adalah format payload yang direkomendasikan, dan ini adalah satu-satunya format yang didukung untuk versi 2015-12-11 dan yang lebih baru.

Permintaan sampel

JSON (versi 2013-08-15 dan yang lebih baru)

Contoh ini menunjukkan contoh URI permintaan, header permintaan terkait, dan isi permintaan untuk umpan JSON.

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

Umpan atom (versi yang lebih lama dari 2015-12-11)

Contoh ini menunjukkan contoh URI permintaan, header permintaan terkait, dan isi permintaan untuk umpan Atom.

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>  

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 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 1.024 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  
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  

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

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

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

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

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

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

Penyimpanan Tabel tidak mempertahankan null nilai untuk properti. Menentukan properti dengan nilai setara dengan null menghilangkan properti tersebut dalam permintaan.

Catatan

Anda dapat memanfaatkan salah satu perilaku untuk menghapus properti dari entitas.

Untuk mengetik properti secara eksplisit, tentukan jenis data yang sesuai OData dengan mengatur m:type atribut dalam definisi properti di umpan Atom. Untuk informasi selengkapnya tentang mengetik properti, lihat Menyisipkan dan memperbarui entitas.

Aplikasi apa pun yang dapat mengotorisasi dan mengirim permintaan HTTP PUT dapat memperbarui entitas.

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

Lihat juga

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