Eseguire query sui dati con T-SQL
L'editor di query di Azure Esplora dati supporta l'uso di T-SQL oltre al linguaggio di query primario, il linguaggio di query Kusto (KQL). Anche se KQL è il linguaggio di query consigliato, T-SQL può essere utile per gli strumenti che non sono in grado di usare KQL.
Nota
Sono supportati solo i comandi DQL (Data Query Language). Per altre informazioni, vedere Copertura.
Eseguire query con T-SQL
Per eseguire una query T-SQL, iniziare la query con una riga di commento T-SQL vuota: --
. La --
sintassi indica all'editor di query di interpretare la query seguente come T-SQL e non KQL.
Esempio
--
SELECT * FROM StormEvents
Da T-SQL a Linguaggio di query Kusto
L'editor di query supporta la possibilità di convertire query T-SQL in KQL. Questa funzionalità di traduzione può essere utile per gli utenti che hanno familiarità con SQL e vogliono ottenere altre informazioni su KQL.
Per ottenere la chiave KQL equivalente per un'istruzione T-SQL SELECT
, aggiungere la parola chiave explain
prima della query. L'output sarà la versione KQL della query, che può essere utile per comprendere la sintassi e i concetti KQL corrispondenti.
Ricordarsi di anteporre le query T-SQL con una riga di commento T-SQL, --
, per indicare all'editor di query di interpretare la query seguente come T-SQL e non KQL.
Esempio
--
explain
SELECT top(10) *
FROM StormEvents
ORDER BY DamageProperty DESC
Output
StormEvents
| project
StartTime,
EndTime,
EpisodeId,
EventId,
State,
EventType,
InjuriesDirect,
InjuriesIndirect,
DeathsDirect,
DeathsIndirect,
DamageProperty,
DamageCrops,
Source,
BeginLocation,
EndLocation,
BeginLat,
BeginLon,
EndLat,
EndLon,
EpisodeNarrative,
EventNarrative,
StormSummary
| sort by DamageProperty desc nulls first
| take int(10)
Eseguire funzioni archiviate
Quando si usa T-SQL, è consigliabile creare query KQL ottimizzate e incapsularle nelle funzioni archiviate, in modo da ridurre al minimo il codice T-SQL e migliorare le prestazioni. Ad esempio, se si dispone di una funzione archiviata come descritto nella tabella seguente, è possibile eseguirla come illustrato nell'esempio di codice.
Nome | Parametri | Testo | Cartella | DocString |
---|---|---|---|---|
MyFunction | (myLimit: long) | {StormEvents | take myLimit} | MyFolder | Funzione demo con parametro |
SELECT * FROM kusto.MyFunction(10)
Nota
Per distinguere tra le funzioni archiviate e le stored procedure di sistema SQL emulate, eseguire funzioni archiviate con un riferimento esplicito allo kusto
schema. Nell'esempio la funzione archiviata viene eseguita usando kusto.Myfunction
.
Impostare le proprietà della richiesta
Le proprietà della richiesta controllano il modo in cui una query viene eseguita e restituisce i risultati. Per impostare le proprietà della richiesta con T-SQL, anteporre alla query una o più istruzioni con la sintassi seguente:
Sintassi
DECLARE
@__kql_set_
valore del tipo =
requestPropertyName ;
Parametri
Nome | Digita | Obbligatorio | Descrizione |
---|---|---|---|
requestPropertyName | string |
✔️ | Nome della proprietà della richiesta da impostare. |
type | string |
✔️ | Tipo di dati T-SQL del valore. |
value | scalare | ✔️ | Valore da assegnare alla proprietà della richiesta. |
Nota
- Due istruzioni devono essere separate da un punto e virgola e non devono essere presenti righe vuote prima della query.
- Le proprietà della richiesta si applicano solo alle istruzioni di espressione tabulare che seguono immediatamente.
Esempi
La tabella seguente illustra esempi di come impostare le proprietà della richiesta con T-SQL.
Proprietà request | Esempio |
---|---|
query_datetimescope_to |
DECLARE @__kql_set_query_datetimescope_to DATETIME = '2023-03-31 03:02:01'; |
request_app_name |
DECLARE @__kql_set_request_app_name NVARCHAR = 'kuku'; |
query_results_cache_max_age |
DECLARE @__kql_set_query_results_cache_max_age TIME = '00:05:00'; |
truncationmaxsize |
DECLARE @__kql_set_truncationmaxsize BIGINT = 4294967297; |
maxoutputcolumns |
DECLARE @__kql_set_maxoutputcolumns INT = 3001; |
notruncation |
DECLARE @__kql_set_notruncation BIT = 1; |
norequesttimeout |
DECLARE @__kql_set_norequesttimeout BIT = 0; |
Per impostare le proprietà della richiesta con KQL, vedere l'istruzione set.
Copertura
Azure Esplora dati offre supporto limitato per T-SQL. La tabella seguente descrive le istruzioni E le funzionalità T-SQL non supportate o parzialmente supportate.
Istruzione o funzionalità T-SQL | Descrizione |
---|---|
CREATE , INSERT , DROP e ALTER |
Non supportato |
Modifiche dello schema o dei dati | Non supportato |
ANY , ALL e EXISTS |
Non supportato |
WITHIN GROUP |
Non supportato |
TOP PERCENT |
Non supportato |
TOP WITH TIES |
Valutato come regolare TOP |
TRUNCATE |
Restituisce il valore più vicino |
SELECT * |
L'ordine delle colonne può differire dalle aspettative. Usare i nomi delle colonne se l'ordine è importante. |
AT TIME ZONE |
Non supportato |
Cursori SQL | Non supportato |
Sottoquery correlate | Non supportato |
CTE ricorsive | Non supportato |
Istruzioni dinamiche | Non supportato |
Istruzioni di controllo del flusso | Sono supportate solo IF THEN ELSE le istruzioni con uno schema identico per THEN e .ELSE |
Nomi di colonna duplicati | Non supportato. Il nome originale viene mantenuto per una colonna. |
Tipo di dati | I dati restituiti possono variare in base al tipo di SQL Server. Ad esempio, TINYINT e SMALLINT non hanno equivalenti in Azure Esplora dati e possono restituire come INT32 o INT64 anziché BYTE .INT16 |
Contenuto correlato
- Informazioni sull'emulazione di SQL Server in Azure Esplora dati
- Usare SQL per Linguaggio di query Kusto foglio informativo