Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Felügyelt Azure SQL-példány
Azure Synapse Analytics
Elemzési platformrendszer (PDW)
SQL Analytics-végpont a Microsoft Fabricben
Raktár a Microsoft Fabricben
SQL-adatbázis a Microsoft Fabricben
A megadott adattípusra leadott értéket ad vissza, ha a leadás sikeres; ellenkező esetben null értéket ad vissza.
Transact-SQL szintaxis konvenciók
Szemantika
TRY_CAST ( expression AS data_type [ ( length ) ] )
Arguments
kifejezés
Megadja a leadni kívánt érvényes kifejezéseket.
data_type
Az adattípus, amelybe a kifejezést be szeretné adni. Ez az érték határozza meg az elfogadható értékek tartományát.
length
Nem kötelező egész szám, amely megadja a céladattípus hosszát.
Visszatérési típusok
A megadott adattípusra leadott értéket ad vissza, ha a leadás sikeres; ellenkező esetben null értéket ad vissza.
Megjegyzések
TRY_CAST a megadott értéket veszi át, és megpróbálja átalakítani a megadott data_type. Ha a leadás sikeres, TRY_CAST az értéket a megadott data_type adja vissza; hiba esetén a függvény null értéket ad vissza. Ha azonban olyan átalakítást kér, amely kifejezetten nem engedélyezett, hibaüzenettel TRY_CAST meghiúsul.
TRY_CAST nem új fenntartott kulcsszó, és minden kompatibilitási szinten elérhető.
TRY_CAST ugyanazokkal a szemantikával rendelkezik, mint TRY_CONVERT a távoli kiszolgálókhoz való csatlakozáskor.
TRY_CAST a következő esetekben nem működik egy kifejezés esetében:
- varchar(max), ha a hossz meghaladja a 8000-et
- nvarchar(max), ha a hossz meghaladja a 4000-et
Példák
A. TRY_CAST returns NULL
Az alábbi példa azt mutatja be, hogy null
TRY_CASTértéket ad vissza, ha a leadás meghiúsul.SELECT CASE WHEN TRY_CAST('test' AS FLOAT) IS NULL THEN 'Cast failed' ELSE 'Cast succeeded' END AS Result; GOEz a lekérdezés az eredményt adja:
Cast failed.Az alábbi példa bemutatja, hogy a kifejezésnek a várt formátumban kell lennie.
SET DATEFORMAT dmy; SELECT TRY_CAST('12/31/2022' AS DATETIME2) AS Result; GOEz a lekérdezés az eredményt adja:
NULL.
B. TRY_CAST hiba miatt meghiúsul
Az alábbi példa azt mutatja be, hogy TRY_CAST hibát ad vissza, ha a leadás kifejezetten nem engedélyezett.
SELECT TRY_CAST(4 AS XML) AS Result;
GO
Ennek az állításnak az eredménye hiba, mert egy egész számot nem lehet az xml adattípusba önteni.
Explicit conversion from data type int to xml is not allowed.
C. TRY_CAST sikeres
Ez a példa azt mutatja be, hogy a kifejezésnek a várt formátumban kell lennie.
SET DATEFORMAT mdy;
SELECT TRY_CAST('12/31/2022' AS DATETIME2) AS Result;
GO
Ez a lekérdezés az eredményt adja: 2022-12-31 00:00:00.0000000.