The documentation says
ISNUMERIC returns 1 when the input expression evaluates to a valid
integer, floating point number, money or decimal type; otherwise it
returns 0. A return value of 1 guarantees that expression can be
converted to one of these numeric types.
(Cut and pasted from books online)
Yet the following, one of many, example shows this is not true.
select isnumeric(char(9))
select convert(int, char(9))
-----------
1
(1 row(s) affected)
Server: Msg 245, Level 16, State 1, Line 2
Syntax error converting the varchar value ' ' to a column of data type
int.
So, besides filtering every possible invalid character, how do you
convert dirty values without error. I am not concerned that I may loose
possibly valid values or convert suspect strings to 0 (zero). I just
want to run without raising an error