Ihr Ausdruck ist gültig, ich vermute, dass Sie einen Wert erhalten, der von der Funktion als numerisch betrachtet wird, aber nicht in eine Ganzzahl konvertiert werden kann. Versuchen Sie Folgendes...
declare @myfield varchar(20)
set @myfield='.'
if ISNUMERIC(@myfield)=1
begin
select CONVERT(int,@myField)
end
Die convert-Anweisung explodiert mit dem Fehler, den Sie melden...
Sehen Sie sich diese Frage an:T-sql - bestimmen ob Wert ist Ganzzahl
Einige weitere Beispiele für "Numerische" Werte, die nicht in Ganzzahlen umgewandelt werden können
select '1.e0',ISNUMERIC('1.e0') as IsNum
union
select '.',ISNUMERIC('.') as IsNum
union
select '12.31',ISNUMERIC('12.31') as IsNum
Fügen Sie ein ausgewähltes convert(int,myField)
hinzu im begin/end
um den tatsächlichen Feldwert zu sehen, der den Fehler verursacht hat