使用 SQL Server 模擬執行 KQL 查詢和預存函式
Azure 資料總管提供表格式資料流 (TDS) 端點,可讓您以類似在 SQL Server 中查詢資料的方式查詢數據。 端點支援 TDS 7.x 和 8.0 版。
在本文中,您將瞭解如何從 SQL 相容用戶端執行預存函式和 Kusto 查詢語言 (KQL) 查詢。
注意
本文中的資訊適用於透過 TDS 通訊協定執行參數化呼叫,也稱為 RPC 呼叫。
如需詳細資訊,請參閱 Azure 數據總管中的 SQL Server 模擬 概觀。
執行 KQL 查詢
SQL 預存程式 sp_execute_kql
可用來執行 KQL 查詢,包括參數化查詢。 此程式類似於 sp_executesql
預存程式。
注意
sp_execute_kql
程式只能透過 RPC 呼叫來呼叫,如下列範例所示,而不是從一般 SQL 查詢內呼叫。
的第一個參數 sp_execute_kql
是 KQL 查詢,任何其他參數都會 被視為查詢參數。 下列範例示範如何使用 sp_execute_kql
。
using (var connection = new SqlConnection(csb.ToString()))
{
await connection.OpenAsync();
using (var command = new SqlCommand("sp_execute_kql", connection))
{
command.CommandType = CommandType.StoredProcedure;
var query = new SqlParameter("@kql_query", SqlDbType.NVarChar);
command.Parameters.Add(query);
var parameter = new SqlParameter("mylimit", SqlDbType.Int);
command.Parameters.Add(parameter);
query.Value = "StormEvents | take myLimit";
parameter.Value = 3;
using (var reader = await command.ExecuteReaderAsync())
{
// Read the response.
}
}
}
注意
透過 TDS 呼叫 sp_execute_kql
時,參數類型是由通訊協議設定,不需要宣告。
呼叫預存函式
您可以建立和呼叫 預存函 式,例如 SQL 預存程式。 例如,如果您有如下表中所述的預存函式,您可以呼叫它,如程式代碼範例所示。
名稱 | 參數 | 本文 | Folder | DocString |
---|---|---|---|---|
MyFunction | (myLimit: long) | {StormEvents | take myLimit} | MyFolder | 具有參數的示範函式 |
using (var connection = new SqlConnection(csb.ToString()))
{
await connection.OpenAsync();
using (var command = new SqlCommand("kusto.MyFunction", connection))
{
command.CommandType = CommandType.StoredProcedure;
var parameter = new SqlParameter("mylimit", SqlDbType.Int);
command.Parameters.Add(parameter);
parameter.Value = 3;
using (var reader = await command.ExecuteReaderAsync())
{
// Read the response.
}
}
}
注意
若要區分預存函式和仿真的 SQL 系統預存程式,請使用明確參考架構來呼叫預存函 kusto
式。 在此範例中,會使用 kusto.Myfunction
呼叫預存函式。