Подозирам, че има и други стойности в допълнение към „true“ и „false“ в полето „Flag1“. Така че проверете за стойностите във Flag1.
изберете отделен Flag1 от YouTable.
Ето моето доказателство:
declare @Flag varchar(25) = 'False'
select CONVERT(Bit, @Flag)
Работи добре.
Това обаче ще даде същата грешка.
declare @Flag varchar(25) = ' False' -- Pay attention to the the space in ' False'!
select CONVERT(Bit, @Flag)
-> Съобщение 245, ниво 16, състояние 1, ред 2 Преобразуването е неуспешно при преобразуването на стойността на varchar „False“ в бит за тип данни.
Обърнете внимание на интервала в „False“ в съобщението за грешка!