匯出 (0) 列印
全部展開

查詢實體

更新日期: 2014年2月

Query Entities 作業會查詢資料表中的實體,並包含 $filter$select 選項。

針對使用 $select 查詢選項的要求,必須使用 2011-08-18 版或更新版本提出要求。此外,DataServiceVersionMaxDataServiceVersion 標頭必須設為 2.0Query Entities 要求的建構如下。建議使用 HTTPS。以您的儲存體帳戶名稱取代 myaccount,並以您的資料表名稱取代 mytable

 

方法 要求 URI HTTP 版本

GET

https://myaccount.table.core.windows.net/mytable(PartitionKey='<partition-key>',RowKey='<row-key>')?$select=<comma-separated-property-names>

https://myaccount.table.core.windows.net/mytable()?$filter=<query-expression>&$select=<comma-separated-property-names>

HTTP/1.1

要查詢的實體集位址可在要求 URI 中使用多種格式。如需詳細資訊,請參閱<查詢資料表和實體>。

對模擬儲存體服務提出要求時,請將模擬器主機名稱和表格服務通訊埠指定為 127.0.0.1:10002,後面接著模擬的儲存體帳戶名稱:

 

方法 要求 URI HTTP 版本

GET

http://127.0.0.1:10002/devstoreaccount1/mytable(PartitionKey='<partition-key>',RowKey='<row-key>')?$select=<comma-separated-property-names>

http://127.0.0.1:10002/devstoreaccount1/mytable()?$filter=<query-expression>?$select=<comma-separated-property-names>

HTTP/1.1

儲存體模擬器中的表格服務與 Windows® Azure™ 表格服務有一些不同之處。如需詳細資訊,請參閱About Development Storage儲存體模擬器和 Azure 儲存體服務之間的差異

Query Entities 作業支援 OData 通訊協定規格所定義的查詢選項。如需詳細資訊,請參閱 OData URI 轉換

下表描述必要的和選用的要求標頭。

 

要求標頭 描述

Authorization

必要項。指定驗證配置、帳戶名稱及簽章。如需詳細資訊,請參閱Azure 儲存體服務的驗證

Datex-ms-date

必要項。指定要求的國際標準時間 (UTC)。如需詳細資訊,請參閱Azure 儲存體服務的驗證

x-ms-version

選擇性。指定用於這個要求的作業版本。如需詳細資訊,請參閱Azure 儲存體服務的版本設定

Accept

選擇性。指定接受的回應裝載內容類型。可能的值為:

  • application/atom+xml

  • application/json;odata=nometadata

  • application/json;odata=minimalmetadata

  • application/json;odata=fullmetadata

如需詳細資訊,請參閱表格服務作業的裝載格式

x-ms-client-request-id

選擇性。提供由用戶端產生的不透明值 (具有 1 KB 的字元限制),當儲存體分析記錄為啟用狀態時,此值會記錄在分析記錄檔中。如果是和伺服器所接收的要求相關的用戶端活動,則強烈建議您使用此標頭。如需詳細資訊,請參閱關於儲存體分析記錄Windows Azure 記錄:使用記錄檔追蹤儲存體需求

無。

Request Syntax:
GET /myaccount/Customers()?$filter=(Rating%20ge%203)%20and%20(Rating%20le%206)&$select=PartitionKey,RowKey,Address,CustomerSince HTTP/1.1
Request Headers:
x-ms-version: 2013-08-15
x-ms-date: Mon, 25 Nov 2013 15:25:14 GMT
Authorization: SharedKeyLite myaccount:<some key>
Accept: application/atom+xml,application/xml
Accept-Charset: UTF-8
DataServiceVersion: 2.0;NetFx
MaxDataServiceVersion: 2.0;NetFx

回應包括 HTTP 狀態碼、一組回應標頭和回應主體。

成功的作業會傳回狀態碼「200 (OK)」。

如需狀態碼的資訊,請參閱狀態和錯誤碼表格服務錯誤碼

這項作業的回應包括下列標頭。回應也可能包括其他標準 HTTP 標頭。所有標準標頭都符合 HTTP/1.1 通訊協定規格

 

回應標頭 描述

x-ms-continuation-NextPartitionKey

x-ms-continuation-NextRowKey

如果要傳回的實體數目超過 1,000、如果超過伺服器逾時間隔,或者如果查詢跨越資料分割界限,則回應標頭包含 x-ms-continuation-NextPartitionKeyx-ms-continuation-NextRowKey 接續標頭。

如需使用接續 Token 的詳細資訊,請參閱<查詢逾時和分頁>。

x-ms-request-id

此標頭可唯一識別提出的要求,而且可用來進行要求的疑難排解。如需詳細資訊,請參閱對應用程式開發介面作業進行疑難排解

x-ms-version

指出用於執行要求的表格服務版本。對 2009-09-19 及更新版本提出要求會傳回此標頭。

Date

服務產生的 UTC 日期/時間值,可指出啟動回應的時間。

Content-Type

指出裝載的內容類型。此標頭的值會取決於 Accept 要求標頭的值。可能的值為:

  • application/atom+xml

  • application/json;odata=nometadata

  • application/json;odata=minimalmetadata

  • application/json;odata=fullmetadata

如需有效內容類型的詳細資訊,請參閱表格服務作業的裝載格式

Response Status:
HTTP/1.1 200 OK
Response Headers:
Content-Type: application/atom+xml;charset=utf-8
x-ms-request-id: 87f178c0-44fe-4123-a4c1-96c8fa6d9654
Date: Mon, 25 Nov 2013 15:25:14 GMT
x-ms-version: 2013-08-15
Connection: close

Query Entities 作業會根據要求的 Accept 標頭,以 JSON 或 Atom 摘要傳回資料表中的實體清單做為 OData 實體集。

以下是 Customer 資料表上 Query Entities 作業的要求 URI 範例。

GET /myaccount/Customers()?$filter=(Rating%20ge%203)%20and%20(Rating%20le%206)&$select=PartitionKey,RowKey,Address,CustomerSince

以下是 Atom 摘要的回應主體:

<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xml:base="https://myaccount.table.core.windows.net">
  <id>https://myaccount.table.core.windows.net/Customers</id>
  <title type="text">Customers</title>
  <updated>2013-08-22T00:50:32Z</updated>
  <link rel="self" title="Customers" href="Customers" />
  <entry m:etag="W/&quot;0x5B168C7B6E589D2&quot;">
   <id>https://myaccount.table.core.windows.net/Customers(PartitionKey='Customer',RowKey='Name')</id>
   <category term="myaccount.Customers" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
   <link rel="edit" title="Customers" href="Customers(PartitionKey='Customer',RowKey='Name')" />
   <title />
   <updated>2013-08-22T00:50:32Z</updated>
   <author>
     <name />
   </author>
   <content type="application/xml">
     <m:properties>
      <d:PartitionKey>Customer</d:PartitionKey>
      <d:RowKey>Name</d:RowKey>
      <d:Timestamp m:type="Edm.DateTime">2013-08-22T00:20:16.3134645Z</d:Timestamp>
      <d:CustomerSince m:type="Edm.DateTime">2008-10-01T15:25:05.2852025Z</d:CustomerSince>
     </m:properties>
   </content>
  </entry>
</feed>

JSON 回應摘要如下所示:

沒有中繼資料:

{
  "value":[
   {
     "PartitionKey":"Customer",
     "RowKey":"Name",
     "Timestamp":"2013-08-22T00:20:16.3134645Z",
     "CustomerSince":"2008-10-01T15:25:05.2852025Z"
   }
  ]
}

最小中繼資料:

{
  "odata.metadata":"https://myaccount.table.core.windows.net/$metadata#Customers",
  "value":[
   {
     "PartitionKey":"Customer",
     "RowKey":"Name",
     "Timestamp":"2013-08-22T00:20:16.3134645Z",
     "CustomerSince@odata.type":"Edm.DateTime",
     "CustomerSince":"2008-10-01T15:25:05.2852025Z"
   }
  ]
}

完整中繼資料:

{
  "odata.metadata":" https://myaccount.table.core.windows.net/metadata#Customers",
  "value":[
   {
     "odata.type":"myaccount.Customers",
     "odata.id":"https://myaccount.table.core.windows.net/Customers(PartitionKey=Customer',RowKey='Name')",
     "odata.etag":"W/\"0x5B168C7B6E589D2\"",
     "odata.editLink":"Customers(PartitionKey=Customer',RowKey='Name')",
     "PartitionKey":"Customer",
     "RowKey":"Name",
     "Timestamp@odata.type":"Edm.DateTime",
     "Timestamp":"2013-08-22T00:20:16.3134645Z",
     "CustomerSince@odata.type":"Edm.DateTime",
     "CustomerSince":"2008-10-01T15:25:05.2852025Z"
   }
  ]
}

帳戶擁有者及使用共用存取簽章並有權執行這項作業的任何人,都可以執行這項作業。

針對表格服務的查詢,一次最多可傳回 1,000 個實體,而且最多執行五秒。如果結果集中包含超過 1,000 個實體、如果查詢未於五秒內完成,或者如果查詢跨越資料分割界限,則回應包含具有一組接續 Token 的自訂標頭。接續 Token 可用來建構下一頁資料的後續要求。如需接續 Token 的詳細資訊,請參閱<查詢逾時和分頁>。

針對使用 $select 查詢選項的投射要求,必須使用 2011-08-18 版或更新版本提出要求。傳回的屬性數目上限為 255,而且即使屬性不是傳回實體的一部分,還是會將所有投射的屬性包含在回應主體中。例如,如果要求包含投射實體未包含的屬性 (property),則會以 null 屬性 (attribute) 標記遺漏的屬性 (property)。上述範例回應主體包含位址屬性,它並不是投射實體的一部分,因此該屬性為 null:<d:Address m:null=”true” />

配置給要求以進行排程和處理查詢的總時間為 30 秒,包括用來執行查詢的五秒。

請注意,查詢計算式的右側必須是常數,您不能參考計算式右側的屬性。如需建構查詢計算式的詳細資訊,請參閱<查詢資料表和實體>。

查詢計算式可能不包含 null 值。如果要在查詢字串中使用下列字元,必須將這些字元編碼:

  • 斜線 (/)

  • 問號 (?)

  • 冒號 (:)

  • 'At' 符號 (@)

  • 連字號 (&)

  • 等號 (=)

  • 加號 (+)

  • 逗號 (,)

  • 貨幣符號 ($)

可驗證及傳送 HTTP GET 要求的任何應用程式,都可以查詢資料表中的實體。

如需透過 LINQ 對表格服務支援查詢作業的詳細資訊,請參閱表格服務支援的查詢運算子撰寫針對表格服務的 LINQ 查詢

顯示:
© 2014 Microsoft