none
Vincolo di arco temporale RRS feed

  • Domanda

  • Buongiorno a tutti,

    vi chiedo scusa anticipatamente se sarò poco chiaro o risulterò inesperto (lo sono). 

    Allora, io vorrei esprimere che una persona può sottoscrivere un contratto con un'azienda solo se il non ha altri contratti attivi. Mi spiego meglio, voglio che la persona non possa avere più nuovo contratto se la data di fine di quello precedente non è passata. Ho pensato ad un vincolo che verificasse che il giorno di inserimento del nuovo contratto sia maggiore della data del contratto già esistente. Ma non ho idea di come implementarlo su SQLServer. Qualcuno sa come aiutarmi?

    grazie

    venerdì 4 dicembre 2020 15:26

Risposte

  • Ciao,

    per esprimere il vincolo sul database devi necessariamente ricorrere ad un trigger sulla tabella dei contratti, un trigger che operi nel caso INSERT e UPDATE.

    All'interno del trigger, tramite il linguaggio TSQL, puoi verificare la sussistenza delle tue regole (non esiste già un contratto aperto o altro..) e nel caso annullare la transazione sollevando un messaggio di errore opportuno.


    Giorgio

    • Contrassegnato come risposta deficalo venerdì 4 dicembre 2020 19:23
    venerdì 4 dicembre 2020 18:34

Tutte le risposte

  • Ciao,

    per esprimere il vincolo sul database devi necessariamente ricorrere ad un trigger sulla tabella dei contratti, un trigger che operi nel caso INSERT e UPDATE.

    All'interno del trigger, tramite il linguaggio TSQL, puoi verificare la sussistenza delle tue regole (non esiste già un contratto aperto o altro..) e nel caso annullare la transazione sollevando un messaggio di errore opportuno.


    Giorgio

    • Contrassegnato come risposta deficalo venerdì 4 dicembre 2020 19:23
    venerdì 4 dicembre 2020 18:34
  • Grazie mille, immaginavo di dover utilizzare i trigger :)
    venerdì 4 dicembre 2020 19:23