Deberías intentar transmitirlo explícitamente usando CAST
o CONVERT
funcione como a continuación y no cuente con la conversión implícita.
SELECT * FROM test WHERE sample_col = cast('foo' as int);
(OR)
SELECT * FROM test WHERE cast(sample_col as varchar) = 'foo';
Además, no tiene sentido comparar un INT
escriba la columna con string
value y AFAIK, no existe tal configuración presente para detener la conversión implícita. si realmente desea generar un error en lugar de convertirlo a 0, cámbielo explícitamente; en cuyo caso se producirá un error.
Consulte Conversión de tipos en la evaluación de expresiones Para más información.