TRY_CAST (Transact-SQL)

 

**DIESES THEMA GILT FÜR:** ![](../Image/Applies%20to/yes.png)SQL Server \(ab 2012\) ![](../Image/Applies%20to/yes.png)Azure SQL\-Datenbank ![](../Image/Applies%20to/no.png)Azure SQL Data Warehouse ![](../Image/Applies%20to/no.png)Parallel Data Warehouse

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

Topic link icon Transact-SQL-Syntaxkonventionen

  
TRY_CAST (expression AS data_type [ ( length ) ])  

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.

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

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.

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  

Im Folgenden finden Sie 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  

Im Folgenden finden Sie 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  

Im Folgenden finden Sie das Resultset.

Result  
----------------------------------  
2010-12-31 00:00:00.0000000  
  
(1 row(s) affected)  

TRY_CONVERT (Transact-SQL)
CAST und CONVERT (Transact-SQL)

Community-Beiträge

Anzeigen: