Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL Analytics-eindpunt in Microsoft Fabric
Magazijn in Microsoft Fabric
SQL-database in Microsoft Fabric
Retourneert een waardecast naar het opgegeven gegevenstype als de cast slaagt; anders wordt null geretourneerd.
Transact-SQL syntaxis-conventies
Syntaxis
TRY_CAST ( expression AS data_type [ ( length ) ] )
Arguments
expressie
Hiermee geeft u een geldige expressie die moet worden cast.
data_type
Het gegevenstype waarin de expressie moet worden gecast. Deze waarde bepaalt het bereik van acceptabele waarden.
length
Optioneel geheel getal dat de lengte van het doelgegevenstype aangeeft.
Retourtypen
Retourneert een waardecast naar het opgegeven gegevenstype als de cast slaagt; anders wordt null geretourneerd.
Opmerkingen
TRY_CAST neemt de waarde die eraan is doorgegeven en probeert deze te converteren naar de opgegeven data_type. Als de cast slaagt, TRY_CAST wordt de waarde geretourneerd als de opgegeven data_type; als er een fout optreedt, wordt null geretourneerd. Als u echter een conversie aanvraagt die expliciet niet is toegestaan, mislukt het TRY_CAST met een fout.
TRY_CAST is geen nieuw gereserveerd trefwoord en is beschikbaar in alle compatibiliteitsniveaus.
TRY_CAST heeft dezelfde semantiek als TRY_CONVERT bij het maken van verbinding met externe servers.
TRY_CAST werkt niet voor een expressie in de volgende gevallen:
- varchar(max) als de lengte hoger is dan 8.000
- nvarchar(max) als de lengte hoger is dan 4.000
Voorbeelden
Eén. TRY_CAST geeft NULL terug
In het volgende voorbeeld ziet u dat
TRY_CASTnull wordt geretourneerd wanneer de cast mislukt.SELECT CASE WHEN TRY_CAST('test' AS FLOAT) IS NULL THEN 'Cast failed' ELSE 'Cast succeeded' END AS Result; GODeze query geeft een resultaat van
Cast failed.In het volgende voorbeeld ziet u dat de expressie de verwachte indeling moet hebben.
SET DATEFORMAT dmy; SELECT TRY_CAST('12/31/2022' AS DATETIME2) AS Result; GODeze query geeft een resultaat van
NULL.
B. TRY_CAST mislukt met een fout
In het volgende voorbeeld ziet u dat TRY_CAST er een fout wordt geretourneerd wanneer de cast expliciet niet is toegestaan.
SELECT TRY_CAST(4 AS XML) AS Result;
GO
Het resultaat van deze instructie is een fout, omdat een geheel getal niet in het xml-datatype kan worden gecast.
Explicit conversion from data type int to xml is not allowed.
C. TRY_CAST slaagt
In dit voorbeeld ziet u dat de expressie de verwachte indeling moet hebben.
SET DATEFORMAT mdy;
SELECT TRY_CAST('12/31/2022' AS DATETIME2) AS Result;
GO
Deze query geeft een resultaat van 2022-12-31 00:00:00.0000000.