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 di SQL Server 2005 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 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

CREATE TABLE (Transact-SQL)

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

ALTER TABLE (Transact-SQL)

Procedura: Creazione di chiavi primarie (Visual Database Tools)

Procedura: Eliminazione di chiavi primarie (Visual Database Tools)

Per ottenere informazioni sui vincoli PRIMARY KEY

sys.key_constraints (Transact-SQL)

Vedere anche

Concetti

Vincoli PRIMARY KEY

Guida in linea e informazioni

Assistenza su SQL Server 2005