Tôi nghi ngờ rằng có các giá trị khác ngoài 'true' và 'false' trong trường 'Flag1'. Vì vậy, hãy kiểm tra các giá trị trong Flag1.
chọn Flag1 riêng biệt từ YouTable.
Đây là bằng chứng của tôi:
declare @Flag varchar(25) = 'False'
select CONVERT(Bit, @Flag)
Nó hoạt động tốt.
Tuy nhiên, điều này sẽ gây ra cùng một lỗi.
declare @Flag varchar(25) = ' False' -- Pay attention to the the space in ' False'!
select CONVERT(Bit, @Flag)
-> Msg 245, Level 16, State 1, Line 2Conversion không thành công khi chuyển đổi giá trị varchar 'False' thành bit kiểu dữ liệu.
Hãy chú ý đến khoảng trống trong 'False' trong thông báo lỗi!