TRY_CAST (Transact-SQL)
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
Der umzuwandelnde Wert. Beliebiger gültiger Ausdruck.
data_type
Der Datentyp, in den expression umgewandelt 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_type bestimmt.
Rückgabetypen
Gibt einen in den angegebenen Datentyp umgewandelten Wert zurück, wenn die Umwandlung erfolgreich ist. Andernfalls wird NULL zurückgegeben.
Hinweise
TRY_CAST versucht, den übergebenen Wert in den angegebenen data_type zu 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.
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
Dies ist das Resultset.
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/2010' AS datetime2) AS Result;
GO
Dies ist das Resultset.
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 eine ganze Zahl 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/2010' AS datetime2) AS Result;
GO
Dies ist das Resultset.
Result
----------------------------------
2010-12-31 00:00:00.0000000
(1 row(s) affected)