Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Cambiare i servizi usando l'elenco a discesa Versione. Altre informazioni sulla navigazione.
Si applica a: ✅ Microsoft Fabric ✅ Esplora dati ✅ di Azure Monitoraggio di Azure Microsoft ✅ Sentinel
Verifica la presenza di una condizione. Se la condizione è false, restituisce i messaggi di errore e non riesce la query.
Nota
La assert funzione viene valutata durante la fase di analisi delle query, prima che vengano applicate ottimizzazioni come la riduzione costante e il corto circuito del predicato.
Nota
I parametri assegnati a assert devono essere valutati in costanti durante la fase di analisi delle query. In altre parole, può essere costruito solo da altre espressioni che fanno riferimento a costanti e non può essere associato al contesto di riga.
Sintassi
assert(
messaggio condizione,)
Altre informazioni sulle convenzioni di sintassi.
Parametri
| Nome | Digita | Obbligatorio | Descrizione |
|---|---|---|---|
| condition | bool |
✔️ | Espressione condizionale da valutare. La condizione deve essere valutata come costante durante la fase di analisi della query. |
| message | string |
✔️ | Messaggio utilizzato se l'asserzione viene valutata su false. |
Valori restituiti
Restituisce true se la condizione è true.
Genera un errore semantico se la condizione viene valutata su false.
Esempi
La query seguente definisce una funzione checkLength() che controlla la lunghezza della stringa di input e usa assert per convalidare il parametro di lunghezza di input (verifica che sia maggiore di zero).
let checkLength = (len:long, s:string)
{
assert(len > 0, "Length must be greater than zero") and
strlen(s) > len
};
datatable(input:string)
[
'123',
'4567'
]
| where checkLength(len=long(-1), input)
L'esecuzione di questa query genera un errore: assert() has failed with message: 'Length must be greater than zero'
Esempio di esecuzione con input valido len :
let checkLength = (len:long, s:string)
{
assert(len > 0, "Length must be greater than zero") and strlen(s) > len
};
datatable(input:string)
[
'123',
'4567'
]
| where checkLength(len=3, input)
Output
| input |
|---|
| 4567 |
La query seguente avrà sempre esito negativo, dimostrando che la assert funzione viene valutata anche se l'operatore where b non restituisce dati quando b è false:
let b=false;
print x="Hello"
| where b
| where assert(b, "Assertion failed")