OKÉ. Ik heb eindelijk een weergave gemaakt die werkt:
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]%')
Met dank aan AdaTheDev en CodeByMoonlight . Ik heb uw twee antwoorden gebruikt om dit te bereiken. (Uiteraard ook met dank aan de andere antwoorden)
Als ik nu joins doe met andere bigint-cols of iets doe als 'SELECT * FROM MyView waar mycol=1', wordt het juiste resultaat zonder fouten geretourneerd. Mijn gok is dat de CAST in de query zelf ervoor zorgt dat de query-optimizer niet naar de originele tabel kijkt, zoals Christian Hayter zei dat het mogelijk is met de andere weergaven