Cenni preliminari sull'integrità referenziale

L'integrità referenziale è un sistema di regole che garantiscono che le relazioni fra le righe di tabelle correlate siano valide e che non sia possibile eliminare o modificare accidentalmente dati correlati.

[!NOTA]

Viene visualizzata una nuova versione di Progettazione tabelle per i database nel formato SQL Server 2012. In questo argomento viene descritta la versione precedente di Progettazione tabelle, utilizzata con i database in formati precedenti di SQL Server.

Nella nuova versione è possibile modificare definizioni di tabella mediante un'interfaccia grafica o direttamente in un riquadro di script. Se si utilizza l'interfaccia grafica, la definizione della tabella viene automaticamente aggiornata nel riquadro di script. Per applicare il codice SQL nel riquadro di script, selezionare il pulsante Aggiorna. Per ulteriori informazioni sulla nuova versione, vedere Procedura: Creazione di oggetti di database tramite Progettazione tabelle.

Procedura

È possibile impostare l'integrità referenziale quando vengono soddisfatte tutte le seguenti condizioni:

  • La colonna corrispondente della tabella primaria è una chiave primaria o prevede un vincolo UNIQUE.

  • Le colonne correlate nella tabella esterna hanno lo stesso tipo di dati e la stessa dimensione.

Quando si attiva l'integrità referenziale, è necessario rispettare le seguenti regole:

  • Non è possibile immettere un valore nella colonna di chiave esterna della tabella correlata se tale valore non esiste nella chiave primaria della tabella correlata.È tuttavia possibile immettervi un valore Null.Non è ad esempio possibile specificare che un lavoro è assegnato a un dipendente non incluso nella tabella employee, ma è possibile specificare che a un dipendente non è stato assegnato alcun lavoro immettendo un valore Null nella colonna job_id della tabella employee.

  • Non è possibile eliminare una riga da una tabella chiave primaria se in una tabella correlata esistono righe corrispondenti.Non è ad esempio possibile eliminare una riga dalla tabella jobs se al lavoro rappresentato da tale riga sono assegnati uno o più dipendenti nella tabella employee.

  • Non è possibile modificare un valore della chiave primaria nella tabella chiave primaria se esistono righe correlate a tale riga.Non è ad esempio possibile modificare il valore job_id di una riga nella tabella jobs se nella tabella employee sono presenti dipendenti con tale job_id.

Vedere anche

Riferimenti

Finestra di dialogo Relazioni chiavi esterne

Altre risorse

Operazioni con le relazioni

Oggetti di database