Du bör hellre försöka casta den explicit med CAST
eller CONVERT
fungerar som nedan och räkna inte med implicit casting.
SELECT * FROM test WHERE sample_col = cast('foo' as int);
(OR)
SELECT * FROM test WHERE cast(sample_col as varchar) = 'foo';
Dessutom är det ingen idé att jämföra en INT
skriv kolumn med string
värde och AFAIK, finns det ingen sådan inställning för att stoppa implicit casting. om du verkligen vill resultera i fel istället för att konvertera det till 0, cast det explicit; i så fall kommer det att felas.
Se Typkonvertering i uttrycksutvärdering För mer information.