OK. Jag skapade äntligen en vy som fungerar:
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]%')
Tack vare AdaTheDev och CodeByMoonlight . Jag använde dina två svar för att komma till detta. (Tack till de andra svararna också såklart)
Nu när jag gör joins med andra bigint-kolumner eller gör något som "SELECT * FROM MyView där mycol=1" returnerar det korrekt resultat utan fel. Min gissning är att CAST i själva frågan gör att frågeoptimeraren inte tittar på den ursprungliga tabellen som Christian Hayter sa kan pågå med de andra vyerna