Share via


TRY_CAST (Transact-SQL)

Gibt einen in den angegebenen Datentyp umgewandelten Wert zurück, wenn die Umwandlung erfolgreich ist. Andernfalls wird NULL zurückgegeben.

Themenlink (Symbol) 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)

Siehe auch

Verweis

TRY_CONVERT (Transact-SQL)

CAST und CONVERT (Transact-SQL)