Vincoli PRIMARY KEY

Una tabella include in genere una colonna o una combinazione di colonne i cui valori identificano in modo univoco ogni riga della tabella. Queste colonne sono denominate chiave primaria e garantiscono l'integrità di entità della tabella. Per creare una chiave primaria, è possibile definire un vincolo PRIMARY KEY in fase di creazione o di modifica di una tabella.

Una tabella può disporre di un singolo vincolo PRIMARY KEY. Le colonne che fanno parte del vincolo PRIMARY KEY non supportano valori Null. Poiché i vincoli PRIMARY KEY garantiscono l'univocità dei dati, vengono spesso definiti per la colonna identity.

Quando si specifica un vincolo PRIMARY KEY per una tabella, Motore di database assicura l'univocità dei dati creando un indice univoco per le colonne chiave primaria. Questo indice consente inoltre di accedere rapidamente ai dati quando si utilizza la chiave primaria nelle query. Le chiavi primarie scelte devono pertanto essere conformi alle regole stabilite per la creazione di indici univoci.

Se un vincolo PRIMARY KEY viene definito per più colonne, possono essere presenti valori duplicati nella stessa colonna, ma ogni combinazione di valori di tutte le colonne nella definizione del vincolo PRIMARY KEY deve essere univoca.

Le colonne ProductID e VendorID nella tabella Purchasing.ProductVendor costituiscono un vincolo PRIMARY KEY composto per la tabella come illustrato nella figura seguente. Ciò garantisce l'univocità della combinazione dei valori di ProductID e VendorID.

Vincolo PRIMARY KEY composto

Quando si utilizzano i join, i vincoli PRIMARY KEY consentono di correlare le tabelle. Per determinare ad esempio quali fornitori offrono determinati prodotti, è possibile utilizzare un join a tre vie tra le tabelle Purchasing.Vendor, Production.Product e Purchasing.ProductVendor. Poiché nella tabella ProductVendor sono presenti entrambe le colonne ProductID e VendorID, è possibile accedere alle tabelle Product e Vendor attraverso la loro relazione con la tabella ProductVendor.