共用方式為


.create function 命令

適用於: ✅Microsoft網狀架構Azure 數據總管

建立預存函式,這是具有指定名稱的可重複使用 KQL 查詢。 函式定義會與資料庫元數據一起保存。

函式可以呼叫其他函式(不支援遞歸性)。 此外,let允許語句做為函式主體一部分。 請參閱 let 語句

參數類型和 CSL 語句的規則與 語句let的規則相同。

權限

您必須至少有 資料庫使用者 許可權才能執行此命令。

語法

.create function [ ifnotexists ] [ with(propertyName=propertyValue [, ...]) ] functionName( 參數){主體}

深入瞭解 語法慣例

參數

姓名 類型​​ 必要 描述
ifnotexists string 如果指定,則只有在函式尚不存在時,才會建立函式。
functionName string ✔️ 要建立或改變之函式的名稱。
propertyNamepropertyValue string 索引鍵/值屬性組的逗號分隔清單。 請參閱 支持的屬性
parameters string 函式所需的參數逗號分隔清單。 每個參數的格式必須是 ParameterName:ParameterDataType。
身體 string ✔️ 用戶定義的函數表達式。

支援的屬性

姓名 類型​​ 描述
docstring string UI 用途之函式的描述。
folder string 用於 UI 函式分類的資料夾名稱。
view bool 將此函式指定為預存檢視。 預存檢視可以參與 搜尋 和聯集 * 案例。 如需詳細資訊,請參閱 檢視
skipvalidation bool 判斷是否要在函式上執行驗證邏輯,並在函式無效時失敗進程。 預設值為 false

提示

如果函式牽涉到跨叢集查詢,而且您打算使用 Kusto 查詢語言 腳本重新建立函式,請將 設定skipvalidationtrue

傳回

輸出參數 類型​​ 描述
姓名 string 函數的名稱。
參數 string 函式所需的參數。
本文 string (零或更多) let 語句後面接著在函式調用時評估的有效 CSL 表達式。
Folder string 用於 UI 函式分類的資料夾。 此參數不會變更叫用函式的方式。
DocString string UI 用途之函式的描述。

注意

  • 如果函式已經存在:
    • 如果 ifnotexists 指定旗標,則會忽略命令(未套用任何變更)。
    • 如果未 ifnotexists 指定旗標,則會傳回錯誤。
    • 如需變更現有的函式,請參閱 .alter function
  • 語句中 let 不支援所有數據類型。 支持的類型包括:布爾值、字串、long、datetime、timespan、double 和 dynamic。
  • 用來 skipvalidation 略過函式的語意驗證。 當函式以不正確的順序建立,且稍早建立使用 F2 的 F1 時,這會很有用。

範例

簡單函式

下列範例會 MyFunction1 使用 description (docstring)、名為 Demo的資料夾來建立函式,並定義函式。

.create function 
with (docstring = 'Simple demo function', folder='Demo')
MyFunction1()
{StormEvents | take 100}
姓名 參數 本文 Folder DocString
MyFunction1 () {StormEvents | take 100} 示範 簡單示範函式

具有參數的函式

下列範例會使用名為 Demo的描述 (docstring), 資料夾來建立 MyFunction2 函式,並定義 Mytimestamp 參數。

.create function with (docstring = "Demo function with date parameter",folder = "Demo") 
 MyFunction2(Mytimestamp:datetime) {
    StormEvents
    | where EndTime <= Mytimestamp
 }
姓名 參數 本文 Folder DocString
MyFunction2 (Mytimestamp:datetime) {StormEvents | where EndTime <= Mytimestamp} 示範 具有 date 參數的示範函式