Sua expressão é válida, suspeito que você esteja obtendo um valor que é considerado numérico pela função, mas não pode ser convertido em um inteiro. Tente o seguinte...
declare @myfield varchar(20)
set @myfield='.'
if ISNUMERIC(@myfield)=1
begin
select CONVERT(int,@myField)
end
A instrução convert explodirá com o erro que você está relatando ...
Confira esta pergunta:T-sql - determine se valor é inteiro
Mais alguns exemplos de valores "numéricos" que não podem ser convertidos em um número inteiro
select '1.e0',ISNUMERIC('1.e0') as IsNum
union
select '.',ISNUMERIC('.') as IsNum
union
select '12.31',ISNUMERIC('12.31') as IsNum
Adicione um
convert(int,myField)
selecionado no begin/end
para ver o valor real do campo que está causando o erro