TRY_CAST (Transact-SQL)
Si applica a: SQL Server Database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics Piattaforma di strumenti analitici (PDW) Endpoint di analisi SQL in Microsoft Fabric Warehouse in Microsoft Fabric
Restituisce un cast del valore nel tipo di dati specificato se il cast ha esito positivo. In caso contrario, restituisce Null.
Convenzioni relative alla sintassi Transact-SQL
Sintassi
TRY_CAST ( expression AS data_type [ ( length ) ] )
Argomenti
expression
Specifica qualsiasi espressione valida di cui eseguire il cast.
data_type
Tipo di dati in cui eseguire il cast di expression.
length
Numero intero facoltativo con cui si specifica la lunghezza del tipo di dati di destinazione.
L'intervallo di valori accettabili è determinato dal valore di data_type.
Tipi restituiti
Restituisce un cast del valore nel tipo di dati specificato se il cast ha esito positivo. In caso contrario, restituisce Null.
Osservazioni:
TRY_CAST
accetta il valore passato e tenta di convertirlo nel data_type specificato. Se il cast ha esito positivo, TRY_CAST
restituisce il valore come data_type specificato. Se si verifica un errore, viene restituito null. Tuttavia, se si richiede una conversione non consentita in modo esplicito, si TRY_CAST
verifica un errore.
TRY_CAST
non è una nuova parola chiave riservata ed è disponibile in tutti i livelli di compatibilità. TRY_CAST
ha la stessa semantica di TRY_CONVERT
quando ci si connette ai server remoti.
TRY_CAST
non funziona per varchar(max) se la lunghezza è superiore a 8000.
Esempi
R. Restituzione del valore Null da parte di TRY_CAST
Nell'esempio seguente viene illustrato che TRY_CAST
restituisce Null quando il cast ha esito negativo.
SELECT
CASE WHEN TRY_CAST('test' AS FLOAT) IS NULL
THEN 'Cast failed'
ELSE 'Cast succeeded'
END AS Result;
GO
Il set di risultati è il seguente.
Result
------------
Cast failed
(1 row(s) affected)
Nell'esempio seguente viene dimostrato che l'espressione deve essere nel formato previsto.
SET DATEFORMAT dmy;
SELECT TRY_CAST('12/31/2022' AS DATETIME2) AS Result;
GO
Il set di risultati è il seguente.
Result
----------------------
NULL
(1 row(s) affected)
B. Esito negativo di TRY_CAST con visualizzazione di un errore
Nell'esempio seguente viene illustrato che TRY_CAST
restituisce un errore quando il cast non è consentito in modo esplicito.
SELECT TRY_CAST(4 AS XML) AS Result;
GO
Il risultato di questa istruzione è un errore, perché non è possibile eseguire il cast di un numero intero in un tipo di dati xml .
Explicit conversion from data type int to xml is not allowed.
C. Esito positivo di TRY_CAST
In questo esempio viene dimostrato che l'espressione deve essere nel formato previsto.
SET DATEFORMAT mdy;
SELECT TRY_CAST('12/31/2022' AS DATETIME2) AS Result;
GO
Il set di risultati è il seguente.
Result
----------------------------------
2022-12-31 00:00:00.0000000
(1 row(s) affected)