Raději byste to měli zkusit přenést explicitně pomocí CAST
nebo CONVERT
fungovat jako níže a nepočítejte s implicitním castingem.
SELECT * FROM test WHERE sample_col = cast('foo' as int);
(OR)
SELECT * FROM test WHERE cast(sample_col as varchar) = 'foo';
Navíc nemá smysl porovnávat INT
zadejte sloupec pomocí string
hodnota a AFAIK, neexistuje žádné takové nastavení, které by zastavilo implicitní přetypování. pokud opravdu chcete mít za následek chybu spíše než její převod na 0, pak ji přetypujte explicitně; v takovém případě dojde k chybě.
Viz Převod typů ve vyhodnocení výrazů Pro více informací.