Anda sebaiknya mencoba mentransmisikannya secara eksplisit menggunakan CAST
atau CONVERT
berfungsi seperti di bawah ini dan jangan mengandalkan casting implisit.
SELECT * FROM test WHERE sample_col = cast('foo' as int);
(OR)
SELECT * FROM test WHERE cast(sample_col as varchar) = 'foo';
Selain itu, tidak ada gunanya membandingkan INT
ketik kolom dengan string
value dan AFAIK, tidak ada pengaturan seperti itu untuk menghentikan casting implisit. jika Anda benar-benar ingin menghasilkan kesalahan daripada mengubahnya menjadi 0 maka berikan secara eksplisit; dalam hal ini akan error.
Lihat Mengetik Konversi dalam Evaluasi Ekspresi Untuk informasi lebih lanjut.