Condividi tramite


Creare chiavi primarie

È possibile definire una chiave primaria in SQL Server 2014 usando SQL Server Management Studio o Transact-SQL. La creazione di una chiave primaria crea automaticamente un indice univoco, raggruppato o non raggruppato corrispondente.

Contenuto dell'articolo

Prima di iniziare

Limitazioni e restrizioni

  • In una tabella è possibile includere un solo vincolo PRIMARY KEY.

  • Tutte le colonne specificate in un vincolo PRIMARY KEY devono essere definite come NOT NULL. Se non viene specificata la nullabilità, per tutte le colonne che partecipano a un vincolo PRIMARY KEY la nullabilità è impostata su NOT NULL.

Sicurezza

Autorizzazioni

La creazione di una nuova tabella con una chiave primaria richiede l'autorizzazione CREATE TABLE nel database e l'autorizzazione ALTER per lo schema in cui viene creata la tabella.

La creazione di una chiave primaria in una tabella esistente richiede l'autorizzazione ALTER per la tabella.

Uso di SQL Server Management Studio

Per creare una chiave primaria

  1. In Esplora oggetti fare clic con il pulsante destro del mouse sulla tabella a cui si desidera aggiungere un vincolo univoco e scegliere Progettazione.

  2. In Progettazione tabelle fare clic sul selettore di riga per la colonna di database che si desidera definire come chiave primaria. Se si desidera selezionare più colonne, tenere premuto CTRL mentre si fa clic sui selettori di riga per le altre colonne.

  3. Fare clic con il pulsante destro del mouse sul selettore di riga per la colonna e selezionare Imposta chiave primaria.

Attenzione

Per ridefinire la chiave primaria, sarà necessario eliminare tutte le relazioni alla chiave primaria esistente prima di poterne creare una nuova. Verrà visualizzato un messaggio di avviso in cui si notificherà che nel corso del processo le relazioni esistenti verranno eliminate automaticamente.

Una colonna chiave primaria è contrassegnata da un simbolo di chiave primaria nel corrispondente selettore di riga.

Se una chiave primaria è composta da più colonne, è consentita la presenza di valori duplicati in una colonna ma è comunque richiesta l'univocità delle combinazioni di valori tratti da tutte le colonne nella chiave primaria.

Se si definisce una chiave composta, l'ordine delle colonne nella chiave primaria corrisponderà all'ordine delle colonne come visualizzate nella tabella. È comunque possibile modificare l'ordine delle colonne dopo la creazione della chiave primaria. Per altre informazioni, vedere Modifica chiavi primarie.

Uso di Transact-SQL

Per creare una chiave primaria in una tabella esistente

  1. In Esplora oggetti, collegarsi a un'istanza di Database Engine.

  2. Sulla barra Standard fare clic su Nuova query.

  3. Copiare e incollare l'esempio seguente nella finestra Query, quindi fare clic su Esegui. Nell'esempio viene creata una chiave primaria nella colonna TransactionID.

    USE AdventureWorks2012;  
    GO  
    ALTER TABLE Production.TransactionHistoryArchive   
    ADD CONSTRAINT PK_TransactionHistoryArchive_TransactionID PRIMARY KEY CLUSTERED (TransactionID);  
    GO  
    
    

Per creare una chiave primaria in una nuova tabella

  1. In Esplora oggetti, collegarsi a un'istanza di Database Engine.

  2. Sulla barra Standard fare clic su Nuova query.

  3. Copiare e incollare l'esempio seguente nella finestra Query, quindi fare clic su Esegui. Nell'esempio viene creata una tabella e viene definita una chiave primaria nella colonna TransactionID.

    USE AdventureWorks2012;  
    GO  
    CREATE TABLE Production.TransactionHistoryArchive1  
    (  
       TransactionID int NOT NULL,  
       CONSTRAINT PK_TransactionHistoryArchive_TransactionID PRIMARY KEY CLUSTERED (TransactionID)  
    );  
    GO  
    
    

    Per altre informazioni, vedere ALTER TABLE (Transact-SQL), CREATE TABLE (Transact-SQL)e table_constraint (Transact-SQL).