共用方式為


table()

適用於:✅Microsoft網狀架構Azure 數據✅總管 Azure 監視器✅Microsoft Sentinel

table() 函式會藉由提供資料表的名稱做為 類型的 string運算式來參考數據表。

語法

table(TableName [, DataScope])

深入瞭解 語法慣例

參數

姓名 類型​​ 必要 描述
TableName string ✔️ 所參考之數據表的名稱。 這個表達式的值必須是函式呼叫點的常數,這表示它不能因數據內容而有所不同。
DataScope string 用來根據此數據落在數據表的有效 快取原則之下,限制數據的數據表參考。 如果使用,實際自變數必須是其中 一個有效數據範圍值

有效的數據範圍值

Description
hotcache 只會參考分類為經常性快取的數據。
all 將會參考數據表中的所有數據。
default 預設值為 all,除非叢集管理員已將 它設定為 hotcache

傳回

table(T) 會傳回:

  • 如果名為 T 的數據表存在,則為數據表 T 的數據。
  • 如果名為 T 的數據表不存在,但名為 T 的函式存在,則由函式 T 傳回的數據。 函式 T 不得接受任何自變數,而且必須傳回表格式結果。
  • 如果沒有名為 T 的數據表,而且沒有名為 T 的函式,就會引發語意錯誤。

範例

使用 table() 存取目前資料庫的數據表

table('StormEvents') | count

輸出

計數
59066

在 let 語句內使用 table()

上述查詢可以重寫為可接收參數的查詢定義函式(let 語句),該函 tableName 式會傳遞至 table() 函式。

let foo = (tableName:string)
{
    table(tableName) | count
};
foo('StormEvents')

輸出

計數
59066

在 Functions 內使用 table()

您可以重寫與上述相同的查詢,以用於接收參數 tableName 的函式中,該函式會傳遞至 table() 函式。

.create function foo(tableName:string)
{
    table(tableName) | count
};

注意

這類函式只能在本機使用,而不是在跨叢集查詢中使用。

搭配非常數參數使用 table()

參數不是純量常數位符串,無法當做參數傳遞至函 table() 式。

以下提供這類案例的因應措施範例。

let T1 = print x=1;
let T2 = print x=2;
let _choose = (_selector:string)
{
    union
    (T1 | where _selector == 'T1'),
    (T2 | where _selector == 'T2')
};
_choose('T2')

輸出

x
2