SQL Server 2005: ¿cómo poner una restricción no nula en una columna dependiendo del valor en otra columna?
-
05-07-2019 - |
Pregunta
en una tabla, dos de las columnas son facturables (bit), billabledate (datetime). quiero que la fecha facturable no sea nula si la factura no es nula.
Solución
Agregar una restricción de verificación:
CHECK (facturable no es nulo y billabledate no es nulo) O (facturable es nulo)
Otros consejos
Necesita una restricción de verificación
ALTER TABLE dbo.Table CON NOCHECK
ADD CONSTRAINT CK_Table_BusinessRule
CHECK (Billable NO ES NULO y BillableDate NO ES NULL)
http://msdn.microsoft.com/ en-us / library / ms179491 (SQL.90) .aspx
Intentaría agregar un desencadenante a la tabla, después de insertar y después de actualizar, para aplicar esa restricción. Verifique el valor facturable, y bloquee la inserción / actualización en caso de que no sea nulo y el billabledate sea nulo.