sql server 2005: come mettere un vincolo non nullo su una colonna a seconda del valore nell'altra colonna?
-
05-07-2019 - |
Domanda
in una tabella due colonne sono fatturabili (bit), fatturabili (datetime) .Voglio che la data fatturabile non sia nulla se fatturabile non è nulla.
Soluzione
Aggiungi un vincolo di controllo:
VERIFICA (fatturabile non è null e fatturabile non è null) OPPURE (fatturabile non è null)
Altri suggerimenti
È necessario un vincolo di controllo
ALTER TABLE dbo.Table CON NOCHECK
AGGIUNGI VINCITORE CK_Table_BusinessRule
CHECK (Fatturabile NON È NULL E BillableDATE NON È NULL)
http://msdn.microsoft.com/ it-it / library / ms179491 (SQL.90) .aspx
Proverei ad aggiungere un trigger alla tabella, dopo l'inserimento e dopo l'aggiornamento, per applicare quel vincolo. Verifica il valore fatturabile e blocca l'inserimento / aggiornamento nel caso in cui non sia nullo e il valore fatturabile sia nullo.