Lihat IsNumeric() Rusak? Hanya sampai titik tertentu.
SELECT CAST('.' AS MONEY)
mengembalikan 0.00
(meskipun pemeran gagal untuk int
dan float
)
ISNUMERIC
hanya memeriksa bahwa nilainya dapat diberikan ke salah satu tipe data numerik yang umumnya tidak berguna. Biasanya Anda ingin tahu apakah itu dapat dilemparkan ke jenis tertentu.
Selain itu bahkan tampaknya tidak melakukan tugas itu dengan benar untuk semua input yang mungkin.. ISNUMERIC(' ')
mengembalikan 0
meskipun casting berhasil ke int dan uang. Sebaliknya ISNUMERIC(N'8')
mengembalikan 1
tetapi tidak berhasil mentransmisikan apa pun yang saya coba.
Beberapa fungsi pembantu yang berguna untuk itu ada di sini IsNumeric, IsInt, IsNumber.
SQL Server 2012 memperkenalkan TRY_PARSE
dan TRY_CONVERT
yang sangat membantu dalam hal ini.