Prin crearea unui UNIC constrângere, Administratorii SQL Server specifică faptul că o coloană a bazei de date nu poate conține valori duplicat. Când creați un nou UNIC constrângere, SQL Server verifică coloana în cauză pentru a determina dacă conține valori duplicate. Dacă masa conține duplicate, comanda de creare a constrângerilor eșuează. În mod similar, după ce definiți o constrângere UNICĂ pe o coloană, eșuează și încercările de a adăuga sau modifica date care ar determina existența duplicatelor.
De ce să folosiți constrângeri UNICE
O constrângere UNICĂ și o cheie primară impun ambele unicitate, dar există uneori când o constrângere UNICĂ este alegerea mai bună.
- Utilizați o constrângere UNIQUE pentru a specifica mai multe constrângeri la un tabel. Puteți atașa o singură cheie primară unui tabel.
- Utilizați o constrângere UNIQUE atunci când o coloană permite valori nule. Constrângerile cheii primare pot fi atașate numai coloanelor care nu permit valori nule.
Crearea unei constrângeri UNICE
Cel mai simplu mod de a crea o constrângere unică în Transact-SQL este să vă conectați la un motor de baze de date în Exploratorul de obiecte în SQL Management Studio și apoi să faceți clic pe Interogare nouă.
Utilizați următoarea interogare, modificând termenii după cum este necesar, pentru a crea un nou tabel și pentru a adăuga o constrângere pe o coloană:
USE AdventureWorks2012;
MERGE
CREARE TABEL Producție. TransactionHistoryArchive4
(
TransactionID int NOT NULL,
CONSTRAINT AK_TransactionID UNIQUE (TransactionID)
);
MERGE.
Executați interogarea.
În mod similar, pentru a crea o constrângere unică pe o tabelă existentă, executați următoarea interogare T-SQL:
USE AdventureWorks2012;
MERGE
ALTER TABLE Persoană. Parola
ADĂUGAȚI CONSTRAINT AK_Password UNIQUE (PasswordHash, PasswordSalt);
MERGE.
Constrângeri UNICE vs. Indexuri UNICE
A existat o oarecare confuzie cu privire la diferența dintre o constrângere UNICĂ și un indice UNIC. În timp ce puteți utiliza diferite comenzi T-SQL pentru a le crea (ALTER TABLE și ADD CONSTRAINT pentru constrângeri și CREATE UNIQUE INDEX pentru indexuri), acestea au același efect, în cea mai mare parte. De fapt, atunci când creați o constrângere UNIQUE, aceasta creează de fapt un index UNIQUE pe masă. Rețineți însă câteva diferențe:
- Când creați un index, puteți adăuga opțiuni suplimentare la comanda de creare.
- O coloană supusă unei constrângeri UNICE poate fi utilizată ca cheie externă.