SQL Server 2005: comment mettre une contrainte non nulle sur une colonne en fonction de la valeur dans une autre colonne?
-
05-07-2019 - |
Question
dans une table, deux des colonnes sont facturables (bit), billabledate (date / heure) .Je veux que la date facturable soit non nulle si facturable n’est pas nulle.
La solution
Ajouter une contrainte de vérification:
CHECK (facturable n'est pas nul et billabledate n'est pas null) OR (facturable est nul)
Autres conseils
Vous avez besoin d'une contrainte de vérification
ALTER TABLE dbo.Table AVEC NOCHECK
AJOUTER CONSTRAINT CK_Table_BusinessRule
CHECK (Billable N'EST PAS NUL ET BillableDate N'EST PAS NULL)
http://msdn.microsoft.com/ en-us / library / ms179491 (SQL.90) .aspx
J'essaierais d'ajouter un déclencheur à la table, après insertion et après mise à jour, pour appliquer cette contrainte. Vérifiez la valeur facturable et bloquez l’insertion / la mise à jour si elle n’est pas nulle et que la valeur facturée est nulle.