Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Remplacements efficaces d'ISNUMERIC() sur SQL Server ?

Vous pouvez utiliser les fonctions T-SQL TRY_CAST() ou TRY_CONVERT() si vous exécutez SQL Server 2012 comme Bacon Bits le mentionne dans les commentaires :

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

Si vous utilisez SQL 2008 R2 ou une version antérieure, vous devrez utiliser une fonction .NET CLR et envelopper System.Decimal.TryParse().