TRY_CAST (Transact-SQL)
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) SQL Analytics-Endpunkt in Microsoft Fabric Warehouse in Microsoft Fabric
Gibt einen in den angegebenen Datentyp umgewandelten Wert zurück, wenn die Umwandlung erfolgreich ist. Andernfalls wird NULL zurückgegeben.
Transact-SQL-Syntaxkonventionen
Syntax
TRY_CAST ( expression AS data_type [ ( length ) ] )
Argumente
expression
Gibt einen beliebigen gültigen Ausdruck an, der umgewandelt werden soll.
data_type
Der Datentyp, in den expressionumgewandelt werden soll.
length
Eine optionale ganze Zahl, die die Länge des Zieldatentyps angibt.
Der Bereich zulässiger Werte wird durch den Wert von data_typebestimmt.
Rückgabetypen
Gibt einen in den angegebenen Datentyp umgewandelten Wert zurück, wenn die Umwandlung erfolgreich ist. Andernfalls wird NULL zurückgegeben.
Bemerkungen
TRY_CAST
versucht, den übergebenen Wert in den angegebenen data_typezu konvertieren. Wenn die Umwandlung erfolgreich ist, gibt TRY_CAST
den Wert als angegebenen data_type zurück. Bei einem Fehler wird NULL zurückgegeben. Wenn Sie jedoch eine Konvertierung anfordern, die explizit nicht zulässig ist, verursacht TRY_CAST
einen Fehler.
TRY_CAST
ist kein neues reserviertes Schlüsselwort und in allen Kompatibilitätsgraden verfügbar. TRY_CAST
verfügt beim Herstellen einer Verbindung mit Remoteservern über die gleiche Semantik wie TRY_CONVERT
.
TRY_CAST
funktioniert nicht für varchar(max), wenn die Länge 8.000 übersteigt.
Beispiele
A. TRY_CAST gibt NULL zurück.
Im folgenden Beispiel wird veranschaulicht, dass TRY_CAST
NULL zurückgibt, wenn die Umwandlung fehlerhaft ist.
SELECT
CASE WHEN TRY_CAST('test' AS FLOAT) IS NULL
THEN 'Cast failed'
ELSE 'Cast succeeded'
END AS Result;
GO
Hier sehen Sie das Ergebnis.
Result
------------
Cast failed
(1 row(s) affected)
Im folgenden Beispiel wird veranschaulicht, dass der Ausdruck das erwartete Format aufweisen muss.
SET DATEFORMAT dmy;
SELECT TRY_CAST('12/31/2022' AS DATETIME2) AS Result;
GO
Hier sehen Sie das Ergebnis.
Result
----------------------
NULL
(1 row(s) affected)
B. Bei TRY_CAST tritt ein Fehler auf.
Im folgenden Beispiel wird veranschaulicht, dass TRY_CAST
einen Fehler zurückgibt, wenn die Umwandlung explizit nicht zulässig ist.
SELECT TRY_CAST(4 AS XML) AS Result;
GO
Das Ergebnis dieser Anweisung ist ein Fehler, da ein Integer nicht in einen XML-Datentyp umgewandelt werden kann.
Explicit conversion from data type int to xml is not allowed.
C. TRY_CAST ist erfolgreich.
In diesem Beispiel wird veranschaulicht, dass der Ausdruck das erwartete Format aufweisen muss.
SET DATEFORMAT mdy;
SELECT TRY_CAST('12/31/2022' AS DATETIME2) AS Result;
GO
Hier sehen Sie das Ergebnis.
Result
----------------------------------
2022-12-31 00:00:00.0000000
(1 row(s) affected)