Váš výraz je platný, mám podezření, že dostáváte hodnotu, kterou funkce považuje za číselnou, ale nelze ji převést na celé číslo. Zkuste následující...
declare @myfield varchar(20)
set @myfield='.'
if ISNUMERIC(@myfield)=1
begin
select CONVERT(int,@myField)
end
Příkaz convert vybuchne s chybou, kterou hlásíte...
Podívejte se na tuto otázku:T-sql – zjistěte, zda hodnota je celé číslo
Několik dalších příkladů "Numerických" hodnot, které nelze převést na celé číslo
select '1.e0',ISNUMERIC('1.e0') as IsNum
union
select '.',ISNUMERIC('.') as IsNum
union
select '12.31',ISNUMERIC('12.31') as IsNum
Přidejte výběr convert(int,myField)
v begin/end
abyste viděli skutečnou hodnotu pole způsobující chybu