OK. Konečně jsem vytvořil pohled, který funguje:
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]%')
Díky AdaTheDev a CodeByMoonlight . Použil jsem vaše dvě odpovědi, abych se k tomu dostal. (Samozřejmě i díky ostatním odpovědím)
Nyní, když se spojím s jinými sloupci bigint nebo udělám něco jako 'SELECT * FROM MyView, kde mycol=1', vrátí správný výsledek bez chyb. Domnívám se, že CAST v dotazu sám o sobě způsobuje, že optimalizátor dotazů se nepodívá na původní tabulku, jak řekl Christian Hayter, že to možná probíhá s ostatními pohledy