Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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)