Biểu thức của bạn là hợp lệ, tôi nghi ngờ rằng bạn đang nhận một giá trị được hàm coi là số, nhưng không thể chuyển đổi thành số nguyên. Hãy thử cách sau ...
declare @myfield varchar(20)
set @myfield='.'
if ISNUMERIC(@myfield)=1
begin
select CONVERT(int,@myField)
end
Câu lệnh chuyển đổi sẽ xuất hiện với lỗi mà bạn đang báo cáo ...
Hãy xem câu hỏi này: T-sql - xác định xem giá trị là số nguyên
Một số ví dụ khác về giá trị "Số" không thể chuyển đổi thành số nguyên
select '1.e0',ISNUMERIC('1.e0') as IsNum
union
select '.',ISNUMERIC('.') as IsNum
union
select '12.31',ISNUMERIC('12.31') as IsNum
Thêm một convert(int,myField)
được chọn trong begin/end
để xem giá trị trường thực tế khiến lỗi xảy ra