Twoje wyrażenie jest prawidłowe, podejrzewam, że otrzymujesz wartość, która jest uważana przez funkcję za liczbową, ale nie można jej przekonwertować na liczbę całkowitą. Wypróbuj następujące...
declare @myfield varchar(20)
set @myfield='.'
if ISNUMERIC(@myfield)=1
begin
select CONVERT(int,@myField)
end
Wyciąg convert zostanie wysadzony wraz z błędem, który zgłaszasz...
Sprawdź to pytanie:T-sql - określ, czy wartość jest liczbą całkowitą
Więcej przykładów wartości „liczbowych”, których nie można przekonwertować na liczbę całkowitą
select '1.e0',ISNUMERIC('1.e0') as IsNum
union
select '.',ISNUMERIC('.') as IsNum
union
select '12.31',ISNUMERIC('12.31') as IsNum
Dodaj wybrane convert(int,myField)
w begin/end
aby zobaczyć rzeczywistą wartość pola powodującą wystąpienie błędu