Votre expression est valide, je soupçonne que vous obtenez une valeur considérée comme numérique par la fonction, mais qui ne peut pas être convertie en entier. Essayez ce qui suit...
declare @myfield varchar(20)
set @myfield='.'
if ISNUMERIC(@myfield)=1
begin
select CONVERT(int,@myField)
end
L'instruction de conversion explosera avec l'erreur que vous signalez...
Consultez cette question :T-sql - déterminer si la valeur est un entier
Quelques exemples supplémentaires de valeurs "Numériques" qui ne peuvent pas être converties en nombre entier
select '1.e0',ISNUMERIC('1.e0') as IsNum
union
select '.',ISNUMERIC('.') as IsNum
union
select '12.31',ISNUMERIC('12.31') as IsNum
Ajoutez une sélection convert(int,myField)
dans le begin/end
pour voir la valeur réelle du champ à l'origine de l'erreur