Vincoli UNICI in Microsoft SQL Server
Un vincolo UNIQUE offre maggiore flessibilità rispetto a un vincolo di chiave primaria
Creando un vincolo UNIQUE, gli amministratori di SQL Server specificano che una colonna del database non può contenere valori duplicati. Quando crei un nuovo UNIQUE vincolo , SQL Server verifica la colonna in questione per determinare se contiene valori duplicati. Se la tavolo contiene duplicati, il comando di creazione del vincolo non riesce. Allo stesso modo, dopo aver definito un vincolo UNIQUE su una colonna, anche i tentativi di aggiungere o modificare dati che causerebbero l'esistenza di duplicati hanno esito negativo.
KIVILCIM PINAR / Getty Images
Perché usare vincoli UNICI
Un vincolo UNIQUE e una chiave primaria entrambi impongono l'unicità, ma a volte un vincolo UNIQUE è la scelta migliore.
- Utilizzare un vincolo UNIQUE per specificare diversi vincoli in una tabella. Puoi allegare 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.
Creazione di un vincolo UNICO
Il modo più semplice per creare un vincolo univoco in Transact-SQL è connettersi a un Motore di database in Esplora oggetti in SQL Management Studio e quindi fare clic su Nuova domanda .
Utilizzare la query seguente, modificando i termini secondo necessità, per creare una nuova tabella e aggiungere un vincolo su una colonna:
|_+_|
Esegui la query.
Allo stesso modo, per creare un vincolo univoco su una tabella esistente, eseguire la seguente query T-SQL:
|_+_|Vincoli UNIQUE vs. Indici UNIQUE
C'è stata una certa 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), per la maggior parte hanno lo stesso effetto. Infatti, 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 utilizzata come chiave esterna.