Una guida ai vincoli UNICI in Microsoft SQL Server

click fraud protection

Creando un UNICO vincolo, gli amministratori di SQL Server specificano che una colonna del database non può contenere valori duplicati. Quando crei un nuovo UNICO vincolo, SQL Server controlla la colonna in questione per determinare se contiene valori duplicati. Se la tavolo contiene duplicati, il comando di creazione del vincolo ha esito negativo. Allo stesso modo, dopo aver definito un vincolo UNIQUE su una colonna, anche i tentativi di aggiungere o modificare dati che potrebbero causare l'esistenza di duplicati non riescono.

Codice SQL su sfondo nero.
KIVILCIM PINAR / Getty Images

Perché usare vincoli UNICI?

Un vincolo UNIQUE e una chiave primaria rafforzano entrambi l'unicità, ma a volte un vincolo UNIQUE è la scelta migliore.

  • Utilizzare un vincolo UNIQUE per specificare diversi vincoli a una tabella. Puoi collegare solo una chiave primaria a una tabella.
  • Utilizzare un vincolo UNIQUE quando una colonna consente valori null. I vincoli di chiave primaria possono essere associati solo a colonne che non consentono valori null.
instagram viewer

Creare un vincolo UNICO

Il modo più semplice per creare un vincolo univoco in Transact-SQL consiste nel connettersi a un motore di database in Esplora oggetti in SQL Management Studio e quindi fare clic su Nuova domanda.

Utilizzare la seguente query, modificando i termini secondo necessità, per creare una nuova tabella e aggiungere un vincolo su una colonna:

UTILIZZARE AdventureWorks2012; 
PARTIRE
CREA TABELLA Produzione. ArchivioCronologia transazioni4
(
TransactionID int NOT NULL,
CONSTRAINT AK_TransactionID UNIQUE(TransactionID)
);
PARTIRE.

Eseguire la query.

Allo stesso modo, per creare un vincolo univoco su una tabella esistente, eseguire la seguente query T-SQL:

UTILIZZARE AdventureWorks2012; 
PARTIRE
ALTER TABLE Persona. Parola d'ordine
ADD CONSTRAINT AK_Password UNIQUE (PasswordHash, PasswordSalt);
PARTIRE.

Vincoli UNICI vs. Indici UNICI

C'è stata un po' di confusione sulla differenza tra un vincolo UNIQUE e un indice UNIQUE. Sebbene sia possibile utilizzare diversi comandi T-SQL per crearli (ALTER TABLE e ADD CONSTRAINT per i vincoli e CREATE UNIQUE INDEX per gli indici), hanno lo stesso effetto, per la maggior parte. In effetti, quando crei un vincolo UNIQUE, crea effettivamente un indice UNIQUE sulla tabella. Nota diverse differenze, però:

  • Quando crei un indice, puoi aggiungere ulteriori opzioni al comando di creazione.
  • Una colonna soggetta a un vincolo UNIQUE può essere usata come a chiave esterna.
instagram story viewer