Dalam SQL Server, fungsi yang sering digunakan adalah CAST() , yang mengonversi ekspresi dari satu tipe data ke tipe data lainnya. Tetapi jika pemeran tidak berhasil, maka itu akan mengembalikan kesalahan.
Masukkan TRY_CAST() .
TRY_CAST() fungsi tidak mengembalikan kesalahan jika pemeran gagal. Sebagai gantinya, ia mengembalikan NULL .
Namun ada beberapa kesempatan, di mana itu akan mengembalikan kesalahan.
Sintaks
Sintaksnya seperti ini:
TRY_CAST ( expression AS data_type [ ( length ) ] )
Dimana expression adalah ekspresi yang akan dikonversi, data_type adalah tipe data baru, dan length adalah panjang opsional untuk tipe data baru.
Contoh 1 – Cast Berhasil
Berikut adalah contoh casting string sebagai decimal :
SELECT TRY_CAST('007' AS DECIMAL(5,2)); Hasil:
7.00
Dalam hal ini, para pemeran berhasil.
Contoh 2 – Cast Gagal dan Mengembalikan NULL
Berikut ini contoh pemeran yang gagal dan NULL dikembalikan:
SELECT TRY_CAST('Double Oh Seven!' AS DECIMAL(5,2)); Hasil:
NULL
Pemeran gagal, jadi NULL dikembalikan.
Sebagai perbandingan, inilah yang terjadi ketika kita menggunakan CAST() bukannya TRY_CAST() :
SELECT CAST('Double Oh Seven!' AS DECIMAL(5,2)); Hasil:
Msg 8114, Level 16, State 5, Line 1 Error converting data type varchar to numeric.
Contoh 3 – Cast Gagal dan Mengembalikan Error
Ada beberapa kesempatan di mana TRY_CAST() akan mengembalikan kesalahan.
Jika pemeran secara eksplisit tidak diizinkan, maka ia mengembalikan kesalahan:
SELECT TRY_CAST(10 AS xml); Hasil:
Msg 529, Level 16, State 2, Line 1 Explicit conversion from data type int to xml is not allowed.
Informasi Lebih Lanjut
Lihat Bagaimana CAST() Bekerja di SQL Server untuk contoh konversi lainnya, dan CAST() vs TRY_CAST() di SQL Server untuk perbandingan antara CAST() dan TRY_CAST() .
Lihat dokumentasi Microsoft untuk CAST() dan CONVERT() untuk informasi lebih detail (sebagian besar juga berlaku untuk TRY_CAST() ).