Een gids voor UNIEKE beperkingen in Microsoft SQL Server

click fraud protection

Door een UNIEKE te creëren beperking, geven SQL Server-beheerders aan dat een databasekolom geen dubbele waarden mag bevatten. Wanneer u een nieuwe UNIEKE aanmaakt beperking, controleert SQL Server de kolom in kwestie om te bepalen of deze dubbele waarden bevat. Als de tafel duplicaten bevat, mislukt de opdracht voor het maken van beperkingen. Evenzo mislukken pogingen om gegevens toe te voegen of te wijzigen die dubbele gegevens zouden veroorzaken, nadat u een UNIQUE-beperking voor een kolom hebt gedefinieerd.

SQL-code op een zwarte achtergrond.
KIVILCIM PINAR / Getty Images

Waarom UNIEKE beperkingen gebruiken?

Een UNIEKE beperking en een primaire sleutel dwingen beide uniciteit af, maar er zijn momenten dat een UNIEKE beperking de betere keuze is.

  • Gebruik een UNIQUE-beperking om verschillende beperkingen voor een tabel op te geven. U kunt slechts één primaire sleutel aan een tabel koppelen.
  • Gebruik een UNIQUE-beperking wanneer een kolom null-waarden toestaat. Primaire sleutelbeperkingen kunnen alleen worden gekoppeld aan kolommen die geen null-waarden toestaan.
instagram viewer

Een UNIEKE beperking creëren

De eenvoudigste manier om een ​​unieke beperking in Transact-SQL te maken, is door verbinding te maken met een database-engine in Object Explorer in SQL Management Studio en vervolgens te klikken op Nieuwe vraag.

Gebruik de volgende query, waarbij u de termen indien nodig aanpast, om een ​​nieuwe tabel te maken en een beperking aan een kolom toe te voegen:

GEBRUIK AdventureWorks2012; 
GAAN
MAAK TAFEL Productie. TransactieGeschiedenisArchief4
(
TransactionID int NIET NULL,
CONSTRAINT AK_TransactionID UNIEK(TransactionID)
);
GAAN.

Voer de vraag uit.

Op dezelfde manier voert u de volgende T-SQL-query uit om een ​​unieke beperking voor een bestaande tabel te maken:

GEBRUIK AdventureWorks2012; 
GAAN
WIJZIG TABEL Persoon. Wachtwoord
ADD CONSTRAINT AK_Password UNIEK (PasswordHash, PasswordSalt);
GAAN.

UNIEKE beperkingen vs. UNIEKE Indexen

Er is enige verwarring geweest over het verschil tussen een UNIQUE-beperking en een UNIQUE-index. Hoewel u verschillende T-SQL-opdrachten kunt gebruiken om ze te maken (ALTER TABLE en ADD CONSTRAINT voor beperkingen en CREATE UNIQUE INDEX voor indexen), hebben ze grotendeels hetzelfde effect. Wanneer u een UNIQUE-beperking maakt, wordt in feite een UNIQUE-index op de tabel gemaakt. Let echter op een aantal verschillen:

  • Wanneer u een index maakt, kunt u extra opties toevoegen aan de aanmaakopdracht.
  • Een kolom onderworpen aan een UNIEKE beperking kan worden gebruikt als een as vreemde sleutel.
instagram story viewer