Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

chiavi esterne sulla tabella da database diverso

Eviterei di farlo se potessi:puoi semplicemente mantenere entrambe le tabelle in un database e utilizzare un FK?

Le tabelle padre e figlio si trovano in database diversi.

Sebbene non sia possibile utilizzare una chiave esterna in questa situazione, esistono soluzioni alternative:è possibile utilizzare trigger o UDF racchiusi in vincoli di controllo. In ogni caso, l'integrità dei tuoi dati non è completamente a tenuta stagna:se il database con la tua tabella padre si arresta in modo anomalo e lo ripristini da un backup, potresti facilmente rimanere orfano.

La relazione genitore-figlio è rafforzata dai trigger.

Ci sono alcune situazioni in cui i trigger non si attivano, come ad esempio:

· Una tabella viene eliminata.

· Una tabella viene troncata.

· Le impostazioni per i trigger nidificati e/o ricorsivi impediscono l'attivazione di un trigger.

Anche un trigger potrebbe non essere corretto. In ogni caso, potresti finire con degli orfani nel tuo database.