La tua espressione è valida, sospetto che tu stia ottenendo un valore che è considerato un valore numerico dalla funzione, ma non può essere convertito in un numero intero. Prova quanto segue...
declare @myfield varchar(20)
set @myfield='.'
if ISNUMERIC(@myfield)=1
begin
select CONVERT(int,@myField)
end
La dichiarazione di conversione esploderà con l'errore che stai segnalando...
Dai un'occhiata a questa domanda:T-sql - determina se il valore è intero
Alcuni altri esempi di valori "numerici" che non possono essere convertiti in un intero
select '1.e0',ISNUMERIC('1.e0') as IsNum
union
select '.',ISNUMERIC('.') as IsNum
union
select '12.31',ISNUMERIC('12.31') as IsNum
Aggiungi un convert(int,myField)
selezionato nel begin/end
per vedere il valore effettivo del campo che causa l'errore