ДОБРЕ. Най-накрая създадох изглед, който работи:
SELECT TOP (100) PERCENT id, CAST(CASE WHEN IsNumeric(MyCol) = 1 THEN MyCol ELSE NULL END AS bigint) AS MyCol
FROM dbo.MyTable
WHERE (MyCol NOT LIKE '%[^0-9]%')
Благодарение на AdaTheDev и CodeByMoonlight . Използвах двата ви отговора, за да стигна до това. (Благодаря и на другите отговорили, разбира се)
Сега, когато правя обединения с други bigint col или правя нещо като „SELECT * FROM MyView where mycol=1“, той връща правилния резултат без грешки. Предполагам, че CAST в самата заявка кара оптимизатора на заявките да не разглежда оригиналната таблица, както каза Кристиан Хейтър, може да се случва с другите изгледи