martes, 12 de julio de 2022

Validar la conversión de un tipo de dato TRY_CONVERT

 Buenas tardes queridos lectores, el día de hoy vamos a explicar el uso de la función agregada de sistema TRY_CONVERT, esta función, combina como bien lo intuimos, la función CONVERT, con el manejo de errores TRY-CATCH, esta función esta disponible a partir de SQL SERVER 2012, por lo que, si usan SQL SERVER 2008, o anteriores, no funcionará. Pues bien, pasemos a su uso que es lo que nos gusta



CONVERT


La función CONVERT, sirve para convertir un tipo de datos en otro, en caso de fallar la conversión devuelve un error y se trunca la ejecución. Veamos un ejemplo:

SELECT CONVERT(int, 'abc')

En este ejemplo, queremos convertir a int la cadena de texto abc, sin embargo, esto nos devuelve un error como éste:

Msg 245, Level 16, State 1, Line 5

Conversion failed when converting the varchar value 'abc' to data type int.

 

Completion time: 2022-07-12T22:02:55.8348145-05:00


TRY_CONVERT


La función Try-Convert(), sirve para convertir un tipo de dato en otro, y en caso de fallar la conversión en lugar de mandar un error, devuelve un NULL evitando que se trunque la ejecución en caso de ser en bloque. Veamos un ejemplo:

SELECT TRY_CONVERT(INT, 'ABC')

Mismo caso del ejemplo anterior, queremos convertir a int la cadena de texto ABC, sin embargo la respuesta es distinta del ejemplo anterior:


Como vemos, en lugar de retornar un error, nos devuelve un valor NULL, lo cual es excelente para realizar validaciones. Veamos el siguiente ejemplo:

SELECT CASE WHEN TRY_CONVERT(int, 'abc') IS NULL

       THEN 'Cast Failed'

END

En este ejemplo, validamos que se pueda convertir en int el valor abc, y en caso de no ser posible la conversión, retorne un mensaje de error.


Hasta aquí el post, espero les sea de utilidad, espero sus comentarios, sus preguntas, y si se quieren poner guapos, den clic a algún anuncio patrocinado.

Saludos

No hay comentarios.:

Publicar un comentario

Featured Post

Identity SQL Server se incrementa en 1000

  Buenas tardes queridos lectores, el día de hoy veremos lo que llamaremos un "bug" en SQL SERVER que tiene que ver con la identid...