Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Azure Data Explorer tillhandahåller en TDS-slutpunkt (Tabular Data Stream) som gör att du kan fråga efter data på ett sätt som liknar hur du frågar efter data i SQL Server. Slutpunkten stöder TDS-versionerna 7.x och 8.0.
I den här artikeln får du lära dig hur du kör lagrade funktioner och Kusto-frågespråk frågor (KQL) från en SQL-kompatibel klient.
Anteckning
Informationen i den här artikeln gäller för körning av parametriserade anrop via TDS-protokollet, även kallat RPC-anrop.
Mer information finns i översikten över SQL Server emulering i Azure Data Explorer.
Köra KQL-frågor
Den lagrade SQL-proceduren sp_execute_kql kan användas för att köra KQL-frågor , inklusive parametriserade frågor. Proceduren liknar den sp_executesql lagrade proceduren.
Anteckning
Proceduren sp_execute_kql kan bara anropas via ett RPC-anrop enligt följande exempel och inte inifrån en vanlig SQL-fråga.
Den första parametern sp_execute_kql i är KQL-frågan och andra parametrar behandlas som frågeparametrar. I följande exempel visas hur du använder 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.
      }
    }
  }
Anteckning
Vid anrop sp_execute_kql via TDS anges parametertyper av protokollet och behöver inte deklareras.
Anropa lagrade funktioner
Du kan skapa och anropa lagrade funktioner som SQL-lagrade procedurer. Om du till exempel har en lagrad funktion enligt beskrivningen i följande tabell kan du anropa den enligt kodexemplet.
| Name | Parametrar | Brödtext | Mapp | DocString | 
|---|---|---|---|---|
| MyFunction | (myLimit: long) | {StormEvents | take myLimit} | MyFolder | Demofunktion med parameter | 
  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.
      }
    }
  }
Anteckning
För att skilja mellan lagrade funktioner och emulerade lagrade SQL-systemprocedurer anropar du lagrade funktioner med en explicit referens till kusto schemat. I exemplet anropas den lagrade funktionen med .kusto.Myfunction