Você pode usar as funções T-SQL TRY_CAST() ou TRY_CONVERT() se estiver executando o SQL Server 2012 como Bacon Bits menciona nos comentários:
SELECT CASE WHEN TRY_CAST('foo' AS INT) IS NULL THEN 0 ELSE 1 END
SELECT CASE WHEN TRY_CAST(1 AS INT) IS NULL THEN 0 ELSE 1 END
Se estiver usando o SQL 2008 R2 ou anterior, você terá que usar uma função .NET CLR e encapsular System.Decimal.TryParse().