Ester articulo te explica las 3 formas posible de hacer un validación a
nivel de base de datos para evitar que existan valores distintos a telefonos
en tu base de datos de sql server.
Manejar las validaciones con la clausulas check permite reducir errores en la
informacion almacenada en tu tabla ademas que para los fines del desarrollo
de aplicaciones permite que el developer del backend solo se preocupe por capturar
el mensaje de error sin tener que desarrollar todo un algoritmo alrededor
de la la informacion suministrada en los formularios de los usuarios.
La sintaxis del check ALTER TABLE nombre_tabla ADD CONSTRAINT
nombre_restriccion CHECK (condición); Donde nombre_tabla es el nombre de
la tabla a la que se le va a agregar la restricción, nombre_restriccion es el
nombre que le asignas a la restricción, y condición es la expresión que se debe
cumplir para que el valor sea válido.
En lo particular tengo mis reservas sobre el uso de Triggers en las tablas
, pero aqui te muestro como crear un trigger en SQL Server para validar que
un valor de teléfono tenga exactamente 10 dígitos numéricos antes de insertar
o actualizar un registro en una tabla.
Este trigger se ejecutará antes de que se inserte o actualice un registro en la tabla
mi_tabla, por lo que cualquier intento de inserción o actualización que no cumpla con
la condición de validación del teléfono será cancelado y se generará un mensaje de error.
Función en SQL Server para validar.
Si el valor es válido, establecemos el valor de retorno de la función en 1;
de lo contrario, lo establecemos en 0.
Para utilizar esta función en una sentencia CHECK para validar el campo telefono
de una tabla, puedes utilizar la siguiente sintaxis: ALTER TABLE mi_tabla ADD
CONSTRAINT telefono_check CHECK (dbo.
validar_telefono(telefono) = 1); En esta CHECK, estamos utilizando la función dbo.
validar_telefono para verificar que el valor de la columna telefono tenga
exactamente 10 dígitos numéricos.
Si el valor no cumple con la condición, la restricción de la tabla no permitirá la
inserción o actualización del registro.
Hasta la Proxima Gracias :D!