ベーコンビットがコメントで述べているように、SQL Server 2012を実行している場合は、T-SQL関数TRY_CAST()またはTRY_CONVERT()を使用できます。
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
SQL 2008 R2以前を使用している場合は、.NET CLR関数を使用し、System.Decimal.TryParse()をラップする必要があります。