Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à :SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Point de terminaison d’analytique SQL dans Microsoft Fabric
Entrepôt dans Microsoft Fabric
Base de données SQL dans Microsoft Fabric
Retourne une valeur convertie en type de données spécifié si la conversion aboutit ; sinon, retourne NULL.
Conventions de la syntaxe Transact-SQL
Syntaxe
TRY_CAST ( expression AS data_type [ ( length ) ] )
Arguments
expression
Spécifie toute expression valide à convertir.
data_type
Type de données vers lequel effectuer le transtypage d’expression. Cette valeur détermine la plage de valeurs acceptables.
length
Entier facultatif qui spécifie la longueur du type de données cible.
Types de retour
Retourne une valeur convertie en type de données spécifié si la conversion aboutit ; sinon, retourne NULL.
Remarques
TRY_CAST prend la valeur qui lui est transmise et tente de la convertir vers le type data_type spécifié. Si le transtypage réussit, TRY_CAST renvoie la valeur dans le type data_type spécifié ; si une erreur se produit, la valeur NULL est renvoyée. Toutefois, si vous demandez une conversion qui n’est pas autorisée explicitement, TRY_CAST échoue avec une erreur.
TRY_CAST n’est pas un nouveau mot clé réservé et est disponible à tous les niveaux de compatibilité.
TRY_CAST a la même sémantique que TRY_CONVERT lors de la connexion à des serveurs distants.
TRY_CAST ne fonctionne pas pour une expression dans les cas suivants :
- varchar(max) si la longueur est supérieure à 8 000
- nvarchar(max) si la longueur est supérieure à 4 000
Exemples
R. TRY_CAST renvoie NULL
L’exemple suivant montre que
TRY_CASTretourne Null lorsque la conversion échoue.SELECT CASE WHEN TRY_CAST('test' AS FLOAT) IS NULL THEN 'Cast failed' ELSE 'Cast succeeded' END AS Result; GOCette requête renvoie un résultat de
Cast failed.L'exemple suivant montre que l'expression doit être au format attendu.
SET DATEFORMAT dmy; SELECT TRY_CAST('12/31/2022' AS DATETIME2) AS Result; GOCette requête renvoie un résultat de
NULL.
B. TRY_CAST échoue avec une erreur
L’exemple suivant montre que TRY_CAST retourne une erreur lorsque la conversion n’est pas autorisée explicitement.
SELECT TRY_CAST(4 AS XML) AS Result;
GO
Le résultat de cette affirmation est une erreur, car un entier ne peut pas être casté dans le type de données xml .
Explicit conversion from data type int to xml is not allowed.
C. TRY-CAST réussit
Cet exemple suivant montre que l'expression doit être au format attendu.
SET DATEFORMAT mdy;
SELECT TRY_CAST('12/31/2022' AS DATETIME2) AS Result;
GO
Cette requête renvoie un résultat de 2022-12-31 00:00:00.0000000.