Dovresti piuttosto provare a trasmetterlo in modo esplicito usando CAST
o CONVERT
funzionano come di seguito e non contano sul casting implicito.
SELECT * FROM test WHERE sample_col = cast('foo' as int);
(OR)
SELECT * FROM test WHERE cast(sample_col as varchar) = 'foo';
Inoltre, non ha senso confrontare un INT
digitare la colonna con string
value e AFAIK, non è presente alcuna impostazione per interrompere il cast implicito. se vuoi davvero generare un errore piuttosto che convertirlo in 0, eseguilo in modo esplicito; nel qual caso si verificherà un errore.
Vedere Digitare la conversione nella valutazione delle espressioni Per maggiori informazioni.