SQL Server 2005: wie man es nicht null Einschränkung für eine Spalte setzen, je nach Wert in anderen Spalt?
-
05-07-2019 - |
Frage
in einer Tabelle zwei Spalten abrechenbaren sind (Bit), billabledate (Datumzeit) .i will abrechenbaren Datum nicht null sein, wenn abrechenbaren nicht null ist.
Lösung
Fügen Sie eine Check-Bedingung:
CHECK (abrechenbare ist nicht null und billabledate ist nicht null) OR (abrechenbare ist null)
Andere Tipps
Sie müssen einen Check Constraint
ALTER TABLE dbo.Table MIT NOCHECK
ADD CONSTRAINT CK_Table_BusinessRule
CHECK (abrechenbare IS NOT NULL UND BillableDate IS NOT NULL)
http://msdn.microsoft.com/ en-us / library / ms179491 (SQL.90) aspx
Ich würde versuchen, einen Trigger auf die Tabelle um, auf nach Einsatz und nach der Aktualisierung, dass die Einschränkung zu erzwingen. Überprüfen Sie den abrechenbaren Wert und Block insert / update falls es nicht null und die billabledate ist null.