Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Substituições eficientes de ISNUMERIC() no SQL Server?


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().