Condividi tramite


Creazione e modifica di vincoli PRIMARY KEY

È possibile creare un singolo vincolo PRIMARY KEY come parte della definizione della tabella quando si crea una tabella. Se la tabella esiste già, è possibile aggiungere un vincolo PRIMARY KEY a condizione che non siano ne sia già presente uno. Una tabella può includere un solo vincolo PRIMARY KEY.

Se è già presente un vincolo PRIMARY KEY, è possibile modificarlo o eliminarlo. È ad esempio possibile impostare il vincolo PRIMARY KEY della tabella in modo che faccia riferimento ad altre colonne oppure è possibile modificare l'ordine delle colonne, il nome dell'indice, l'opzione di clustering o il fattore di riempimento del vincolo PRIMARY KEY. Non è tuttavia possibile modificare la lunghezza di una colonna definita con un vincolo PRIMARY KEY.

[!NOTA]

Per modificare un vincolo PRIMARY KEY, è innanzitutto necessario eliminare il vincolo PRIMARY KEY esistente e quindi crearlo di nuovo con la nuova definizione.

Quando un vincolo PRIMARY KEY viene aggiunto a una o più colonne esistenti nella tabella, in Motore di database vengono analizzati i dati e i metadati delle colonne esistenti per verificare che siano rispettate le regole seguenti relative alle chiavi primarie:

  • Le colonne non devono supportare i valori Null.

    Le colonne dei vincoli PRIMARY KEY specificati al momento della creazione di una tabella vengono convertite in modo implicito in NOT NULL. Non è possibile utilizzare una colonna di tipo sparse come parte di una chiave primaria poiché tale tipo di colonna deve consentire valori Null.

  • Non sono ammessi valori duplicati.

    Se un vincolo PRIMARY KEY viene aggiunto a una colonna che contiene valori duplicati o supporta valori Null, in Motore di database viene restituito un errore e il vincolo non viene aggiunto.

Non è possibile aggiungere un vincolo PRIMARY KEY che viola queste regole.

In Motore di database viene creato automaticamente un indice univoco per imporre il requisito di univocità del vincolo PRIMARY KEY. Se nella tabella non esiste già un indice cluster o se non è specificato in modo esplicito un indice non cluster, viene creato un indice cluster univoco per imporre il vincolo PRIMARY KEY.

Un vincolo PRIMARY KEY non può essere eliminato se si verificano le situazioni seguenti:

  • A tale vincolo fa riferimento un vincolo FOREIGN KEY in un'altra tabella. In questo caso, è prima necessario eliminare il vincolo FOREIGN KEY.

  • Alla tabella è applicato un indice XML primario.

Per creare un vincolo PRIMARY KEY in fase di creazione di una tabella

Per creare o eliminare un vincolo PRIMARY KEY in una tabella esistente

Per ottenere informazioni sui vincoli PRIMARY KEY

Vedere anche

Concetti