Sie sollten lieber versuchen, es explizit mit CAST
zu casten oder CONVERT
funktionieren wie unten und verlassen sich nicht auf implizites Casting.
SELECT * FROM test WHERE sample_col = cast('foo' as int);
(OR)
SELECT * FROM test WHERE cast(sample_col as varchar) = 'foo';
Außerdem macht es keinen Sinn, einen INT
zu vergleichen geben Sie Spalte mit string
ein value und AFAIK, es gibt keine solche Einstellung, um das implizite Casting zu stoppen. Wenn Sie wirklich zu einem Fehler führen möchten, anstatt ihn in 0 zu konvertieren, dann wandeln Sie ihn explizit um; in diesem Fall wird ein Fehler ausgegeben.
Siehe Typkonvertierung in der Ausdrucksauswertung Für mehr Informationen.