Powinieneś raczej spróbować przesłać go jawnie za pomocą CAST
lub CONVERT
działają jak poniżej i nie licz na niejawne rzutowanie.
SELECT * FROM test WHERE sample_col = cast('foo' as int);
(OR)
SELECT * FROM test WHERE cast(sample_col as varchar) = 'foo';
Co więcej, nie ma sensu porównywać INT
wpisz kolumnę z string
value i AFAIK, nie ma takiego ustawienia, aby zatrzymać niejawne rzutowanie. jeśli naprawdę chcesz spowodować błąd, zamiast konwertować go na 0, rzutuj go jawnie; w takim przypadku wystąpi błąd.
Zobacz Konwersja typów w ocenie wyrażenia Po więcej informacji.