共用方式為


.create function 命令

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

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

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

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

權限

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

語法

.createfunction [ 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

傳回

輸出參數 類型 Description
名稱 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} 示範 簡單示範函式

具有參數的示範函式

下列範例會 建立 MyFunction2 函式,其中包含描述 (docstring),名為 Demo的資料夾,並定義 MyLimit 參數。

.create function
with (docstring = 'Demo function with parameter', folder='Demo')
 MyFunction2(myLimit: long)
{StormEvents | take myLimit}
名稱 參數 本文 Folder DocString
MyFunction2 (myLimit:long) {StormEvents | take myLimit} 示範 具有參數的示範函式