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
Verwaltete Azure SQL-Instanz
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL-Analyseendpunkt in Microsoft Fabric
Lagerhaus in Microsoft Fabric
SQL-Datenbank 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. Dieser Wert bestimmt den Bereich zulässiger Werte.
length
Eine optionale ganze Zahl, die die Länge des Zieldatentyps angibt.
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 in den folgenden Fällen nicht für einen Ausdruck :
- varchar(max) if the length is over 8.000
- nvarchar(max) wenn die Länge über 4.000 liegt
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
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
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